参考李刚的《轻量级Java EE 企业应用实战》
轻量级Java EE架构以Spring IoC 容器作为核心,承上启下:其向上管理来
自表现层的Action,向下管理业务逻辑层组件,同时负责管理业务逻辑层所需的DAO对象
①首先肯定要将数据库设计好并导入相应的jar包;
②在web.xml中配置Struts2的核心Filter;
③先整合Struts2和Spring:Spring提供了一个ContextLoaderListener,
该监听器类实现了ServletContextListener接口,该类可以作为Listener
使用,它会在创建时自动查找WEB-INF/下的applicationContext.xml文件,故要在web.xml中配置ContextLoaderListener监听器,是Spring容器随
Web应用的启动而自动启动;(若有多个配置文件需要载入,则考虑使用
<context-param.../>元素来确定配置文件的文件名。
ContextLoaderListener加载时会查找名为contextConfigLocation的初始化参数)
,下一步就是Hibernate与Spring的整合了;
中直接采用了POJO(Plain Old Java Object,普通的、传统的Java对象)
作为PO,并在对应包下生成相应的XML映射文件:PO类名.hbm.xml;
文件中定义数据源Bean(推荐使用C3PO),然后再定义Hibernate的
SessionFactory,将其所需的数据源(ref)与所有映射文件(<list>)写
入;
中封装所需的DAO,接着便到的Action类的创建,在Action类中添加业务逻
辑对象和其对应的setter方法,通过Spring依赖注入,我使用的是让Spring
管理控制器的策略来整合Struts2和Spring的,故要将src/struts.xml(用
eclipse生成、部署项目时,会自动将src路径下除*.java外的所有文件复制
到Web应用的WEB-INF/classes路径下,即类加载路径)中Action的class属
性配置为一个伪控制器(指向Spring容器中Action实例的id),同时在
applicationContext.xml文件中配置相应组件Bean和Action,对Spring容
器而言,Struts2的Action就是一个普通的Bean,也可接受依赖注入,从而
轻松将业务逻辑组件注入该Action Bean中。同时要注意当Spring管理
Struts2的Action时,一定要配置scope属性(因为每个Action对应一次用
户请求,且封装了该次请求的状态信息,所以不应将Action配置出单例模式
,而应将scope指定为prototype或request);
组件的实现,所以不要忘了在applicationContext.xml中的DAO Bean(持
久化操作)注入所需的SessionFactory。