从0搭建Spring父子工程项目
-
首先创建父级项目
这里一路点下去,定义好包名,选择打包方式 -
删除无用的文件
这里我们由于是父子项目,所以不需要src下的任何文件,连同src一起删除即可 -
创建子项目
右键父级文件夹选择创建新的Module,这里我们选择传统的maven方式管理
然后输入名字确定即可
子包的数量及命名依据个人喜好及公司标准,我这里定义为三个Module:-
common
层为常量管理,主要是常量文件、枚举、异常定义 -
service
层为服务层,主要是服务实现、各种外部client交互、DAO层、数据库交互等 -
web
层为controller交互,主要是controller接口、系统配置、拦截器、AOP等实现最终的项目如下:
logs
为了暂时存放日志文件
-
-
父级pom改造
父级的pom只做包依赖管理的pom,主要改造是增加
<dependencyManagement>
标签
首先增加<properties>
标签管理所依赖的版本,这里贴出我所需要的依赖版本
<properties>
<java.version>1.8</java.version>
<druid.version>1.0.29</druid.version>
<mybatis.version>3.4.2</mybatis.version>
<mybatis.spring.version>1.3.1</mybatis.spring.version>
<mysql.version>5.1.41</mysql.version>
<lombok.version>1.18.12</lombok.version>
<fastjson.version>1.2.62</fastjson.version>
<bsh.version>1.3.0</bsh.version>
<freemarker.version>2.3.28</freemarker.version>
<swagger2.version>2.5.0</swagger2.version>
<swagger.ui.version>2.5.0</swagger.ui.version>
<dalgen.plugins.version>1.1.8.1</dalgen.plugins.version>
<apache.commons.version>3.9</apache.commons.version>
<arms.version>1.0.0</arms.version>
<spring.jdbc.version>5.2.3.RELEASE</spring.jdbc.version>
<house.common.version>0.0.1-SNAPSHOT</house.common.version>
<tomcat.embed.version>9.0.31</tomcat.embed.version>
<expiringmap.version>0.5.8</expiringmap.version>
<retrofit.version>2.0.2</retrofit.version>
<aspectjweaver.version>1.9.5</aspectjweaver.version>
<spring.tx.version>5.2.3.RELEASE</spring.tx.version>
<hibernate-validator.version>5.3.5.Final</hibernate-validator.version>
</properties>
然后改造dependencies,管理自己所需要的依赖
build增加maven打包插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
- web层改造
pom文件改造,增加Spring的stater
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
增加Spring启动类,增加ComponentScans扫描子包
/**
* @author moguchen
*/
@SpringBootApplication
@ComponentScans(value = {
@ComponentScan("com.xxx.project.arms.arms_service"),
@ComponentScan("com.xxx.project.arms.arms_common")
})
public class ArmsApplication {
public static void main(String[] args) {
SpringApplication.run(ArmsApplication.class, args);
}
}
6.打包时service层的数据库表xml打包
在service的pom文件的build中增加
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
7.总体依赖如下
web依赖service和common
service依赖common
common只被其他包依赖