目录
将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享。
案例:拆分一下这个SSM整合案例
demo项目下的pom.xml文件(主要看一下依赖)
org.example
demo_pojo
1.0-SNAPSHOT
org.example
demo_dao
1.0-SNAPSHOT
...
demo_pojo项目下的pom.xml文件(关注groupId和artifactId)
org.example
demo_pojo
1.0-SNAPSHOT
demo_dao项目下的pom.xml文件(关注groupId和artifactId、依赖)
org.example
demo_dao
1.0-SNAPSHOT
org.example
demo_pojo
1.0-SNAPSHOT
org.mybatis
mybatis
3.5.13
依赖具有传递性,因而demo项目下的pom.xml文件可以简化。
org.example
demo_dao
1.0-SNAPSHOT
...
可选依赖 -- 对外隐藏当前依赖的资源
org.example
demo_dao
1.0-SNAPSHOT
false
排除依赖 -- 排除当前依赖中的某个资源
org.example
demo_dao
1.0-SNAPSHOT
org.mybatis
mybatis
聚合:将多个模块组织成一个整体,同时进行项目构建。
聚合工程:通常是一个不具有业务功能的 “空” 工程(有且仅有一个pom文件)
作用:当工程中某个模块发生更新时,必须保障工程中相关联的模块同步更新。
例:①创建一个demo_aggregate项目,设置打包类型为pom
org.example
demo_aggregate
1.0-SNAPSHOT
pom
②设置当前聚合工程所包含的子模块名称
../demo
../demo_dao
../demo_pojo
概念:继承描述的是两个工程间的关系,子工程可以继承父工程的配置信息,常见于依赖关系的继承。能够简化配置、减少版本冲突。
例:在上面聚合工程的基础上修改配置。
①提取一些公共性的依赖,放到在父工程demo_aggregate的pom.xml中
org.springframework
spring-webmvc
6.0.10
...
②在子工程demo、demo_dao和demo_pojo中配置当前工程依赖父工程
org.example
demo_aggregate
1.0-SNAPSHOT
../demo_aggregate/pom.xml
③在父工程demo_aggregate的pom.xml中配置子工程中可选的依赖关系
junit
junit
4.13.2
test
在子工程demo中使用父工程中的可选依赖
仅需要配置
junit
junit
test
例1:在配置文件pom.xml中自定义属性,从而简化配置。
6.0.10
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-test
${spring.version}
test
例2:资源文件引用属性。
①pom.xml文件,自定义属性,配置过滤器
jdbc:mysql://localhost:3306/ssm_db
${project.basedir}/src/main/resources
true
②在资源中引用属性
/src/main/resources/jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=123456
不同环境下,所需要的配置可能不同。
在demo_aggregate工程的pom.xml文件中配置多环境。
env_dep
jdbc:mysql://127.0.0.1:3306/ssm_db
true
env_pro
jdbc:mysql://127.1.1.1:3306/ssm_db
env_test
jdbc:mysql://127.2.2.2:3306/ssm_db
应用场景:①功能更新中且没有开发完毕。②快速打包
①快捷方式
②细粒度控制跳过测试
maven-surefire-plugin
2.19.1
false
**/BookServiceTest.java
③maven指令
maven install -D skipTests