========
工程拆分
先新建一个maven工程
什么都不写,直接新建模块
下面是web层的模块,用的是war包,还有一个service层,也是用jar包方式,和dao层一样
其中dao层和service层是有关系的,后面会说
如果新建的web工程有问题,就重构下目录
现在写service和dao
现在注入dao就出错了,因为没有Dao,我们的项目已经分离了
这时候就要配置 MVC之间的依赖关系了
在父项目里加上struts2的依赖
依赖关系
右边是生效的依赖,可以看到出现了2个javassist
可以排除掉
依赖的范围
如果是test,那么在service层里是没有junit包的,上图写了一个 - ,但是如果是Compile和Runtime就可以传递
这是传递依赖,但是上图还是有些问题的,是strut2自身的bug,下面有更好的解决办法
依赖的原则
spring-bean点了以后,2边都有了,说明spring和struts2整合spring的插件都引用了这个jar包
第一个原则,第一申明者优先
如果他们互换个位置,那么版本就会变了
第一个原则,路径近者优先
版本锁定
这样添加的时候就会有一把锁,这样就知道使用这个
ssh框架的整合包依赖基本就这么多,那个ojdbc6是oracle数据库的驱动包(要改成jar包的形式)
struts2-core 是struts2的核心
hibernate-core 是hibernate的核心
struts2-spring-plugin 是struts2和spring整合
spring-orm 是spring和hibernate整合
spring-context加载上下文的,外部依赖spring-beans(这个jar文件是所有应用都要使用到的), spring-aop(面向切面的)
spring-web 是加载配置文件的
spring-tx 是切面里的通知
aspectjweaver 是切面表达式的
slf4j-api和slf4j-log4j 是日志的,里面自带了log4j
ojdbc6 是Oracle的数据库驱动包
c3p0是连接池的包
jstl 是在jsp页面写的jstl表达式,一般和EL表达式集合
还有就是servle api和EL一般是内置的,还有ONGL表达式的jar包也已经在struts2包含了
版本常量管理
把那些版本替换成变量,方便管理
dao层的开发
dao层放持久化类,也就是bean,有7个规范
第5点实现Serializable序列化是为了钝化,因为session是有容量的,一般情况tomcat只支持100多个并发
所以不用的会钝化到硬盘
现在把配置文件放在resource下,并且包名一样,这条打包的时候,就会自动把配置文件和持久化类放在一起
上面的约束头,后面可以收集起来
identity主键策略指由数据库自动生成,自动增长策略,只支持mysql
还有一个核心配置文件
让数据在需要的时候才进行加载,这时我们就用到了懒加载
实体类的验证,在eclipse的右下角总会Verificat,关掉节省资源
还有就是spring的配置文件,spring是schema的约束
前缀也可以删掉
可以在这里继续添加约束,beans,aop,context,tx
配置事务工厂,这里就可以把hibernate的核心配置文件和映射文件都加进来了
现在还是老式的测试方法,因为只是测试用
注意我们的配置文件是applicationContext-dao.xml,而且加了一个目录
如果后面是写applicationContext_* ,那么classpath后面需要加个*
在service里也要写applicationContext-service .xml 里面写事务,切面之类的
这里可能要复习下以前的切面知识,这是方法的增强
这里要修改一下
下面的在整合的时候要删掉
然后直接测试即可
写web层
把list放入值栈
现在就需要加载所有的配置文件
是在web.xml里配的
这个classpath*是代表所有类下的所有jar包,因为service和dao都要打包成jar的,所以是所有jar包
下面是sessionInView好是开启 事务视图,是解决延迟加载出现的事务问题
还有就是上下文监听器
还有struts2的过滤器
再写一个list界面
上传jar包到私服nexus上
这个localhost以后会修改成ip地址
使用命令即可上传到私服
从私服下载jar包
先设置全局变量
配置完后update即可