最近在写一个多模块的SpringBoot项目,基于过程总了一些总结,故把SpringBoot多个模块的项目创建记录下来。
首先,先建立一个父工程:
(1)在IDEA工具栏选择File->New->Project
(2)选择Spring Initializr,默认选择Default,然后点击Next:
(3)在输入框填写以下截图内容,点击Next
(4)直接点Next,无需选择
(5)直接点击Finish完成创建
(6)按照以上步骤,可以生成以下的项目目录结构:
(7)这时把没用的.mvn目录,src目录,mvnw还有mvnw.cmd都删除,最终只保留.gitignore和pom.xml,若是web项目,可在该pom.xml里添加以下依赖:
1 <!--web特征--> 2 <dependency> 3 groupId>org.springframework.boot</4 artifactId>spring-boot-starter-web5 version>2.3.1.RELEASE6 >
最终得到以下的父结构目录:
以上是创建父模块,下面创建子模块:
(1)在父模块的根目录fte上点右键,在弹出的框里选择New->Module
(2)选择Maven,点击Next
(3)填写以下内容,点击Next
(4)填写Module,点击Finish
(5)同理添加fte-controller,fte-dao,fte-service,fte-web,最终得到以下的目录结构:
(6)增加模块之间的依赖:
controller层添加以下依赖:
1 dependencies 2 3 >com.example 4 >fte-common 5 >0.0.1-SNAPSHOT 6 7 8 9 10 >fte-dao11 12 13 14 15 16 >fte-service17 18 19 >
service层添加以下依赖:
2 3 4 5 6 7 >
(7)测试
在fte-controller创建com.zhu.fte.web包,增加以下两个类:
fteWebApplication类:
package com.zhu.fte.web; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6 @SpringBootApplication 7 public class fteWebApplication { 8 public static void main(String[] args) { 9 SpringApplication.run(fteWebApplication.class,args); 10 } 11 }
DemoController类
package java.com.zhu.fte.web; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RestController; 6 @RestController @RequestMapping("demo") public class DemoController { 10 11 @GetMapping("test") 12 public String test(){ 13 return "hello world"; 14 15 16 }
运行发现出现错误:
出现错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project fte-common: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test failed: Plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.2 or one of its dependencies could not be resolved: Could not transfer artifact junit:junit:jar:4.12 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.52.215] failed: Connection timed out: connect -> [Help 1]
把缺少的org.apache.maven.plugins手动放到父工程的pom.xml里
build 2 plugins 3 plugin 4 >org.apache.maven.plugins 5 >maven-clean-plugin 6 >2.5 7 8 9 10 >maven-source-plugin11 >2.212 13 14 15 >maven-compiler-plugin16 >3.017 configuration18 source>1.819 target20 encoding>${file.encoding}21 编译的时候方法不改变方法参数名称,用于支持使用反射获取方法参数名称22 compilerArgument>-parameters23 24 25 26 27 >maven-install-plugin28 >2.429 30 31 32 >maven-jar-plugin33 34 35 archive36 manifest37 addDefaultImplementationEntries>true 38 39 40 41 42 43 44 45 46 >maven-surefire-plugin47 >2.1348 49 argLine>-Xmx512M -Dfile.encoding=${file.encoding}50 51 52 53 >
运行fteWebApplication类里的main方法,默认端口为8080,访问http://localhost:8080/demo/test,正常出现以下情况:
按照以上步骤,就可以初步建立SpringBoot多模块的项目,下一章将基于这个基础搭建Mybatis以及其逆向工程。