說明:咱們經過
maven
的父子工程來搭建springboot
的多模塊項目**前端
本項目涉及了到了五個模塊java
framework-web
模塊主要是放置前端的頁面等信息,framework-model
放置領域對象,framework-service
業務邏輯類放在這裏,framework-mapper
操做數據庫的對象放在這裏,framework-common
基礎公共的類放在這裏mysql
以上五個模塊的依賴關係以下:web
秉承的是至上而下的依賴關係。spring
具體的項目結構圖以下sql
父工程中只包含一個pom.xml
文件,文件內容以下:數據庫
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.triumphxx</groupId> <artifactId>framework-root</artifactId> <version>0.0.1-SNAPSHOT</version> <name>framework-root</name> <description>Demo project for Spring Boot</description> <packaging>pom</packaging> <modules> <module>framework-common</module> <module>framework-web</module> <module>framework-model</module> <module>framework-service</module> <module>framework-mapper</module> </modules> <properties> <java.version>1.8</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-model</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-mapper</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-web</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </dependencyManagement> </project>
說明:咱們將全部的模塊進行統一的版本信息管理,並將每個模塊引入到父
pom.xml
中。apache
framework-web
模塊因爲本模塊是直接由前端進行調用的模塊(先後端分離),
或者是直接將前端文件放在這個模塊下,咱們須要引入前端模版依賴,
和web
依賴。也須要依賴framework-service
,以下:後端
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-service</artifactId> </dependency>
模塊結構以下:
springboot
framework-web
模塊主要是和前端交互的接口controller
在這個模塊咱們建立一個控制器UserController
framework-service
模塊因爲本模塊是須要依賴framework-mapper
模塊。以下:
<dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-mapper</artifactId> </dependency>
模塊結構以下:
framework-service
模塊主要業務邏輯處理。咱們建立了一個接口UserService
和實現UserServiceImpl
framework-mapper
模塊因爲本模塊是須要依賴數據庫相關依賴,和數據表實體。以下:
<dependency> <groupId>com.triumphxx</groupId> <artifactId>framework-model</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <!--數據庫鏈接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version>
模塊結構以下:
framework-mapper
模塊主要操做數據庫。咱們建立了一個接口UserMapper
接口,而且實現查詢user
表數據。以下:
/** * @author:triumphxx * @Date:2020/5/24 * @Time:5:38 下午 * @微信公衆號:北漂碼農有話說 * @desc:用戶查詢 **/ @Mapper public interface UserMapper { @Select("select * from user") List<UserEntity> selectUser(); }
framework-model
模塊咱們只加入lombok
以下:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
模塊結構以下:
framework-model
模塊主要管理咱們的數據表對象。咱們建立UserEntity
/** * @author:triumphxx * @Date:2020/5/24 * @Time:5:36 下午 * @微信公衆號:北漂碼農有話說 * @desc:用戶實體類 **/ @Data public class UserEntity { private String username; private int id; private String password; }
framework-common
模塊這個模塊主要是一些公共的組件,這邊就不詳細說了。
以上模塊搭建好之後咱們建立數據表
CREATE TABLE `user` ( `id` int(45) NOT NULL, `username` varchar(255) COLLATE utf8_bin DEFAULT NULL, `password` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
插入一條測試數據
在framework-web
模塊的配置文件配置數據庫的信息
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC username: root password: root type: com.alibaba.druid.pool.DruidDataSource
啓動項目並訪問接口。
好啦,數據查詢到了,項目搭建完成,本次咱們一塊兒探究了,利用SpringBoot搭建一個多模塊的項目,
這樣作的目的是方便項目的管理