s2s2.5+ibatis2.3+ext2.2项目开发(二)
前面已经说到了集成的问题我们接着上面的讲。
struts2与Spring的集成比较简单主要还是配置文件接下来我们来分析配置文件
主要的配置文件有:
1、applicationContext.xml
2、log4j.properties
3、sqlmap-config.xml
4、struts.properties
5、struts.xml
?
1)、applicationContext.xml 这个就是Spring的核心配置文件了 如果你的项目比较复杂可能会分多个Spring的配置文件(applicationContext-Action.xml、applicationContext-Dao.xml)但最终都还是会被加载到核心配置文件中来本例直接使用applicationContext.xml配置文件来配置
applicationContext.xml配置文件主要做什么呢?其实他做的就是类的注册工作 并整理类与类之间的关系。
好我们来看看
?applicationContext.xml
?
?细心的可以从配置文件中看出本例的结构 这里主要做的事是注册了一个数据库连接bean 注册了ibatis的数据适配器 省略部分是持久化bean(dao)业务逻辑bean(service)与action bean。
仔细看可能会发现<-- aop -->的配置 是的没错 这里通过xml配置方式实现aop功能 顺便分析下:
?
这个bean是切面类用来记录日志的
??
?
?
?
这段配置是aop的核心配置。
?
?
?
?
先注入上面的切面处理类。
?
?
再来是设置切面作用域 也就是定义横切面?
?
?
?
接下来是定义切面类处理方法在什么时候切入程序
??
?before 、after 、around 、after-throwing分别表示前置处理方法(切面类作用域中的类的方法被调用前执行)、后置处理方法(调用后执行)、环绕处理方法(调用前后都执行)、异常处理方法(调用方法抛出异常时执行)。
?
下面是切面类源码
?
?
?
?关于切面类的一些扩展我就不多说了网上大把的大家想了解可以去网上找找
。
?
applicationContext.xml文件除了做了以上所说的这些还启用了注解、设置了事务管理等。
?
?
2)、log4j.properties 这个文件我不想详细分析了内容贴出来 主要是大家注意设置日志输出级别 和日志记录的颗粒度。
?log4j.properties
?
?
说到这个文件就会想到ibatis怎么和Spring集成的呢?大家不妨向上看看applicationContext.xml文件 上面稍微讲了一下 我们在Spring的配置文件中注册了一个ibatis的数据适配器。没错集成的关键就在这里
。我们通过Spring框架提供的org.springframework.orm.ibatis.SqlMapClientFactoryBean类来注册ibatis的数据适配器 SqlMapClientFactoryBean中有一个configLocation属性 ,这个属性会加载sqlmap-config.xml 中的配置 然后把信息交给Spring ,同时SqlMapClientFactoryBean还会调用数据库连接bean来创建数据库连接以满足ibatis操作数据库的需求。这样ibatis也把控制权交给了Spring来管理。这里值得提下的是SqlMapClientFactoryBean封装了访问数据库时的异常处理在后面例子代码分析的时候我会和大家详细讲下
。
?
?
4)、struts.properties? struts2的属性文件先贴内容
struts.objectFactory = springstruts.multipart.saveDir = /tmp struts.multipart.maxSize =1000000000?
?????? 其实这个文件就是Struts2与Spring集成的关键地方,
?内容不多主要设置了Struts2的对象池创建工厂是Spring容器,上传文件的目录,上传文件大小的最大值
这里给个链接 struts.properties中大部分属性的说明大家可以去看看。http://www.blogjava.net/hadeslee/archive/2008/12/03/244199.html
?