1、传递依赖冲突解决(了解)
传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C就是A的传递依赖;导入依赖D,D依赖C(1.2版本)
1.1 maven自己的是调节原则
1.1.1 第一声明者优先原则
谁先定义的就用谁的依赖例如下图中spring-context.jar和struts2-spring-plugin.jar中的依赖传递spring-beans,但是spring-context.jar先定义的,所以maven默认使用spring-context.jar中的传递依赖spring-beans.jar
1.1.2 路径近者优先原则
直接依赖高于传递依赖。例如下图中添加了spring-beans的直接依赖jar包,就不会使用spring-context.jar和struts2-spring-plugin.jar包中的传递依赖
1.2排除依赖
如下图所示,排除依赖后,就不会使用struts2-spring-plugin.jar包中的spring-beans的传递依赖
1.3版本锁定(推荐使用)
dependencyManagement中的版本锁定不等于jar包引入,还要直接使用dependecies
最常用的锁定版本的方式是使用属性变量来定义
2、通过maven整合SSH框架
2.1 SSH框架工作原理
2.2搭建struts2环境
1、导入依赖(jar包)
2、创建struts2配置文件:struts2.xml
3、在web.xml中配置struts2的核心过滤器
2.3搭建spring环境
1、导入依赖(jar包)
2、创建spring配置文件:applicationContext.xml
3、在web.xml中配置监听器:ContextLoaderListener
2.4搭建Hibernate环境
1、导入依赖(jar包)
2、创建hibernate配置文件:hibernate.xml
2.5 struts2和spring的整合
整合关键点:action对象创建,交给spring创建
1、创建action类
2、将action对象配置到spring配置文件中
3、在 struts.xml 中在action节点中class属性配置为spring工厂中action对象bean的id
2.6 spring和hibernate的整合
整合关键点:1、数据源DataSource交给spring 2、SessionFactory对象创建交给spring创建 3、事务管理1、配置dataSource
2、配置SessionFactory对象
3、事务管理
a)配置事务管理器:plateFormTransationManager:接口
i. jdbc:DataSourceTransactionManager
ii. Hibernate:HibernateTransactionManager