022 maven(2)

========

工程拆分

先新建一个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即可

猜你喜欢

转载自blog.csdn.net/yzj17025693/article/details/84273739
022