将 SSM 工程拆分为多个模块开发:
ssm_parent:将所需的依赖都配置在 pom 中。
ssm_dao:负责dao层业务。
ssm_service:负责service层业务。
ssm_web:负责web层业务。
理解继承和聚合
通常继承和聚合同时使用。
何为继承?
继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的配置提取出来在父工程的 pom.xml 中定义。
何为聚合?
项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行。
详细代码及配置文件请参考《Spring,SpringMVC,Mybatis三大框架整合》文章,这里只是对这篇文章的相关代码的复制粘贴。
ssm_parent
pom文件:
4.0.0
com.gzy
ssm_perent
1.0-SNAPSHOT
../ssm_dao
../ssm_web
../ssm_service
pom
org.springframework
spring-context
org.springframework
spring-tx
org.springframework
spring-jdbc
org.aspectj
aspectjweaver
UTF-8
1.8
1.8
5.1.8.RELEASE
3.5.1
2.0.1
1.9.4
8.0.16
2.9.9
3.3.1
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-expression
${spring.version}
org.springframework
spring-jcl
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-aop
${spring.version}
org.aspectj
aspectjweaver
${aspectjweaver.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis.spring.version}
mysql
mysql-connector-java
${mysql.version}
com.zaxxer
HikariCP
${hikari.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
---模块结构---
ssm_dao
pom文件:
ssm_perent
com.gzy
1.0-SNAPSHOT
../ssm_perent/pom.xml
4.0.0
ssm_dao
pom
../ssm_service
UTF-8
1.7
1.7
org.mybatis
mybatis
org.mybatis
mybatis-spring
mysql
mysql-connector-java
5.1.46
com.zaxxer
HikariCP
---模块结构---
ssm_service
pom文件:
ssm_dao
com.gzy
1.0-SNAPSHOT
../ssm_perent/pom.xml
4.0.0
ssm_service
mysql
mysql-connector-java
5.1.46
com.gzy
ssm_dao
1.0-SNAPSHOT
---模块结构---
ssm_web
pom文件:
ssm_perent
com.gzy
1.0-SNAPSHOT
../ssm_perent/pom.xml
4.0.0
ssm_web
war
ssm_web Maven Webapp
http://www.example.com
javax.servlet
javax.servlet-api
3.1.0
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
provided
javax.servlet
jstl
1.2
taglibs
standard
1.1.2
org.springframework
spring-webmvc
com.gzy
ssm_service
1.0-SNAPSHOT
com.fasterxml.jackson.core
jackson-databind
mysql
mysql-connector-java
5.1.46
ssm_web
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
---模块结构---
注意
ssm_web的web.xml配置有所不同