ssm常用配置
分模块构建项目

工程分层的好处:程序的通用性(提高代码的复用率),降低了代码的耦合性
特点1(继承):
----ssm_parent父工程:存放项目的所有jar包。
----ssm_web和ssm_service和ssm_dao有选择的继承jar包,并在自己的工程中使用。这样可以消除jar包重复,并锁定版本
特点2(聚合):
----ssm_web依赖于ssm_service,ssm_service依赖于ssm_dao,我们启动ssm_web,便可以访问我们的程序。
----执行安装的时候,执行ssm_parent,就可以将所有的子工程全部进行安装。
理解继承和聚合总结:
----通常继承和聚合同时使用。
· 何为继承?
----继承是为了消除重复,如果将 dao、 service、 web 分开创建独立的工程则每个工程的 pom.xml 文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的 配置提取出来在父工程的 pom.xml 中定义。
· 何为聚合?
----项目开发通常是分组分模块开发, 每个模块开发完成要运行整个工程需要将每个模块聚合在 一起运行,比如: dao、 service、 web 三个工程最终会打一个独立的 war 运行。
父工程
<spring.version>5.0.2.RELEASE</spring.version>
子模块
事务
<tx:advice id="transferAdvice" transaction-manager="transactionManager">
tx:attributes
<tx:method name="set*" rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>
aop:config
<aop:pointcut id="addAccountAop" expression="execution(* com.baidu.service.impl.AccountServiceImpl.*(..))"/>
<aop:advisor advice-ref="transferAdvice" pointcut-ref="addAccountAop"/>
</aop:config>
视图解析器等组件
mvc:default-servlet-handler/
mvc:annotation-driven
mvc:message-converters
</mvc:message-converters>
</mvc:annotation-driven>
路由分发servlet
整合mybatis
坐标
Jar包冲突问题
引入不同的Jar包依赖相同Jar包的不同版本
第一声明优先原则
哪个jar包在靠上的位置,这个jar包就是先声明的,先声明的jar包下的依赖包,可以优先引入项目中
路径近者优先原则
直接依赖比传递依赖路径近,你那么最终进入项目的jar包会是路径近的直接依赖包
直接依赖:项目中直接导入的jar包就是项目的直接依赖包
传递依赖(间接依赖):项目中没有直接导入的jar包,但是导入的jar包使用了
强制排除
无法通过依赖管理原则排除的,直接排除
<!--写在dependency中-->
<!--强制排除这个jar包导入的jar包-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>

浙公网安备 33010602011771号