第五章 定义配置和资源文件
在Struts+Spring+Hibernate框架中,主要有三类资源配置文件,它们分别是struts的Action和Form配置文件, web为实现多国语言用的资源文件,以及Spring中注册Bean用的配置文件.在我们搭建SSH框架的时候,MyEclipse已经为我们自动生成了对应的三个基本文件,它们分别是struts-config.xml, ApplicationResource.properties, applicationContext.xml.其中applicationContext.xml,在配置Hibernate和生成POJO对象以及DAO操作类的时候,有对DAO操作类做了在Spring中使用的注册配置.
随着项目的扩大,项目模块的增多,我们如果把所有的配置信息都分别放在自动生成的三个文件里面的话,会引起容易冲突,也难以维护的麻烦,同时也不利于整个项目的并行进展.为了解决这样的麻烦,我们根据项目的功能模块以及配置内容,将相关配置文件做进一步的划分.
1. struts-config.xml配置所有的form和action,我们在这里不对它继续拆分,关于系统的所有form和action的配置,都放在一起
2. 为实现页面的多国语言,页面信息会比较多,我们把所有资源文件,按页面所属的功能模块进行各自配置.比如案例中,我们做如下规划:
i) ApplicationResource.properties 配置公共信息和错误提示,所有标签以app.为前缀
ii) UserResource.properties 配置用户注册,用户登陆模块的页面信息,以user.为前缀
iii) ShopResource.properties 配置浏览商品,定购商品模块页面信息,以 shop.为前缀
iv) OrderResource.properites 配置查看订单功能模块页面的信息,以order.为前缀.
3. 为了方便Spring里面各类Java Bean的注册和维护,我们根据bean的类型,对配置文件做了如下规划:
i) applicationContext.xml 注册工具自动生成的Bean,比如Hibernate的dataSource Bean, SessionFactory Bean和各个POJO对象对应的DAO操作类Bean
ii) applicationContext-action.xml 注册所有Struts中对应的Action Bean
iii) applicationContext-service.xml 注册各个模块的服务类,如果需要事务管理的话,还包括它们对应方法事务管理的配置
iv) applicationContext-proxy.xml 配置系统中用到的AOP代理实现
相关配置文件规划完后,如下就分别建立这些文件,和把它们放入各自的位置,并配置入我们的项目框架中去.
1.
在src中的cn.com.book.demo.struts包里,分别建立UserResource.properties, ShopResource.properties和OrderResource.properties文件,内容暂时为空.同时建立对应的汉字临时资源文件UserResource_temp.properties, ShopResource_temp.properties, OrderResource_temp.properites.
为了方便的将汉字资源文件里面的汉字转化成unicode编码的内容,提供给我们页面调用,我们再在这目录下,建立一个批处理文件encoding.bat,内容如下:
2. 在src下,分别建立applicationContext-action.xml, applicationContext-service.xml和applicationContext-proxy.xml文件,内容都是
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
</beans>
3. 在struts-config.xml文件后面,添加如下资源配置
<message-resources parameter="cn.com.book.demo.struts.UserResources" key="user"/>
<message-resources parameter="cn.com.book.demo.struts.ShopResources" key="shop"/>
<message-resources parameter="cn.com.book.demo.struts.OrderResources" key="order"/>
4.
在web.xml文件中,找到
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>,把它改成
<param-value>/WEB-INF/classes/*.xml</param-value>
到这里,我们基本完成了所有资源配置文件的规划和配置,接下的事情,就是在各个功能模块的进展过程中,逐步在文件中添加各自的内容.