SpringBoot之多模块项目搭建
说明:我们通过maven的父子工程来搭建springboot的多模块项目
项目的整体结构如下:
本项目涉及了到了五个模块
framework-web模块主要是放置前端的页面等信息,framework-model放置领域对象,framework-service业务逻辑类放在这里,framework-mapper操作数据库的对象放在这里,framework-common基础公共的类放在这里
以上五个模块的依赖关系如下:
秉承的是至上而下的依赖关系。
具体的项目结构图如下
1、第一步:搭建父工程(framework-root)
父工程中只包含一个pom.xml文件,文件内容如下:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.3.0.RELEASE
com.triumphxx
framework-root
0.0.1-SNAPSHOT
framework-root
Demo project for Spring Boot
pom
framework-common
framework-web
framework-model
framework-service
framework-mapper
1.8
com.triumphxx
framework-model
0.0.1-SNAPSHOT
com.triumphxx
framework-mapper
0.0.1-SNAPSHOT
com.triumphxx
framework-service
0.0.1-SNAPSHOT
com.triumphxx
framework-common
0.0.1-SNAPSHOT
com.triumphxx
framework-web
0.0.1-SNAPSHOT
复制代码
说明:我们将所有的模块进行统一的版本信息管理,并将每一个模块引入到父pom.xml中。
2、第二步:搭建framework-web模块,由于本模块是直接由前端进行调用的模块(前后端分离),或者是直接将前端文件放在这个模块下,我们需要引入前端模版依赖,和web依赖。也需要依赖framework-service,如下:
org.springframework.boot
spring-boot-starter-freemarker
org.springframework.boot
spring-boot-starter-web
com.triumphxx
framework-service
复制代码
模块结构如下:
framework-web模块主要是和前端交互的接口controller
在这个模块我们创建一个控制器UserController
3、第三步:搭建framework-service模块,由于本模块是需要依赖framework-mapper模块。如下:
com.triumphxx
framework-mapper
复制代码
模块结构如下:
framework-service模块主要业务逻辑处理。我们创建了一个接口UserService和实现UserServiceImpl
4、第四步:搭建framework-mapper模块,由于本模块是需要依赖数据库相关依赖,和数据表实体。如下:
com.triumphxx
framework-model
mysql
mysql-connector-java
runtime
com.baomidou
mybatis-plus-boot-starter
3.2.0
com.alibaba
druid-spring-boot-starter
1.1.20
复制代码
模块结构如下:
framework-mapper模块主要操作数据库。我们创建了一个接口UserMapper接口,并且实现查询user表数据。如下:
/**
* @author:triumphxx
* @Date:2020/5/24
* @Time:5:38 下午
* @微信公众号:北漂码农有话说
* @desc:用户查询
**/
@Mapper
public interface UserMapper{
@Select("select * from user")
List selectUser();
}
复制代码
5、第五步:搭建framework-model模块。我们只加入lombok如下:
org.projectlombok
lombok
true
复制代码
模块结构如下:
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;
}
复制代码
6、第六步:搭建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
复制代码
6、第七步:测试,启动项目并访问接口。
数据查询到了。项目完成。
如有收获请关注微信公众号!!!