Springboot多模块项目搭建
目录
- 新建项目,作为父模块
- 创建子模块
- 各个模块建立关系
- 父POM配置
- Entity的POM配置
- Dao的POM配置
- Service的POM配置
- Web的POM配置
- 代码
- 验证
- 注意事项
- 参考资料
新建项目,作为父模块
删除除pom.xml之外的所有文件
效果如下:
.gitignore和ReadMe.md是可选文件
创建子模块
工程上右键 -> new -> model -> 选择Spring Initializer -> 下一步
依此步骤分别建立 web、service、entity、dao,删除每个模块中无用的文件,只留下pom.xml
删除除web模块外其他模块的Application启动类和resources目录下的application.properties配置文件
各个模块建立关系
父POM配置
1. packaging改为pom
2. 声明子模块
3. properties/denpendencies下的配置都为公共配置
4. build模块是打包用的,这里声明了所有模块都跳过单元测试
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.5.6
com.xxx
myblog
0.0.1-SNAPSHOT
myblog
pom
entity
dao
service
web
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.apache.maven.plugins
maven-surefire-plugin
true
Entity的POM配置
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.xxx
myblog
0.0.1-SNAPSHOT
../pom.xml
com.xxx
entity
0.0.1-SNAPSHOT
entity
jar
org.projectlombok
lombok
Dao的POM配置
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.xxx
myblog
0.0.1-SNAPSHOT
../pom.xml
com.xxx
dao
0.0.1-SNAPSHOT
dao
jar
mysql
mysql-connector-java
runtime
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.2.0
com.xxx
entity
0.0.1-SNAPSHOT
Service的POM配置
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.xxx
myblog
0.0.1-SNAPSHOT
../pom.xml
com.xxx
service
0.0.1-SNAPSHOT
service
jar
com.xxx
dao
0.0.1-SNAPSHOT
com.xxx
entity
0.0.1-SNAPSHOT
Web的POM配置
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.xxx
myblog
0.0.1-SNAPSHOT
../pom.xml
com.xxx
web
0.0.1-SNAPSHOT
web
jar
org.springframework.boot
spring-boot-starter-web
com.xxx
service
0.0.1-SNAPSHOT
com.xxx
entity
0.0.1-SNAPSHOT
org.springframework.boot
spring-boot-maven-plugin
com.xxx.blog.WebApplication
代码
Entity
package com.xxx.blog;
import lombok.Data;
import java.util.Date;
/**
* @author computer
*/
@Data
public class UmsMenu {
private int id;
private String title;
private int level;
private Date createTime;
private int parentId;
}
Mapper
package com.xxx.blog;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author computer
*/
public interface UmsMenuMapper {
/**
* 根据ID查找
* @param id
* @return
*/
/*@Select("select * from ums_menu where id = #{id}")
@Results({
@Result(property = "createTime",column = "create_time",javaType = Date.class),
@Result(property = "parentId",column = "parent_id",javaType = int.class)
})*/
UmsMenu findById(@Param("id") int id);
/**
* 查找所有
* @return
*/
/*@Select("select * from ums_menu")
@Results({
@Result(property = "createTime",column = "create_time",javaType = Date.class),
@Result(property = "parentId",column = "parent_id",javaType = int.class)
})*/
List findAll();
}
Mapper.xml
Service
package com.xxx.blog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author computer
*/
@Service
public class WebService {
@Autowired
UmsMenuMapper mapper;
/**
* 获取所有Menu信息
* @return
*/
public List getAllMenu(){
return mapper.findAll();
}
}
Controller
package com.xxx.blog.controller;
import com.xxx.blog.WebService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author computer
*/
@RestController
@RequestMapping("/test")
public class WebTest {
@Autowired
WebService webService;
/**
* 获取所有Menu信息
* @return
*/
@RequestMapping(value = "/getAllMenu",produces = "application/json")
public String getAllMenu(){
return webService.getAllMenu().toString();
}
}
验证
效果
注意事项
1.父pom.xml 打包方式,jar要更改为pom,build 需要更改
2.不需要打包的模块pom.xml文件中不要写,全删掉,例如有些工程中的common模块,utils模块,entity模块,service模 块都不需要打包
3.声明父工程时,填写父工程位置../pom.xml
4.关于applicatin.properties配置文件,只需要在启动的模块中配置就可以了,
5.关于打包为什么打包jar包,不打war包,打war包目的是war包可以运行在tomcat下,但是SpringBoot是内置tomcat,如果你打war包,前提是干掉内置的tomcat,然后才能打包,各种麻烦,直接打包可执行jar包,使用java -jar 命令就可以完美的运行起来很方便!
————————————————
版权声明:本文为CSDN博主「凌云冷海」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_41885330/article/details/81875395
参考资料
SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程