S2SH整合十大感悟

S2SH应该是目前最合理的一个框架结合
整个结合框架struts2管理spring
spring管理hibernate,其中struts2的action通过spring来注入
大致的流程:
1、新建项目 给项目增加hibernate和spring的支持,并且将sessionfactory交给spring来管理
新建的时候一定要注意不要选择spring的AOP包,不然会出现包冲突,说无法创建sessionfactory
2、生产hibernate的反向工程
3、添加 struts2的lib包
4、配置web.xml 添加strut2的监听和 spring的应用上下文并且配置 spring的监听器

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring应用上下文配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<!-- 配置Spring监听器,加载Spring应用上下文对象 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

5、新建一个struts的资源文件:struts.properties 并且声明struts.objectFactory =spring 将struts的所有的对象交给spring来管理
6、修改applicationContext.xml
当然这里就省略了sessionfactory 事务 代理类 等
在 appliactioncontext中配置strut2的bean

<bean id="order_list" scope="prototype" class="com.ibmsoft.action.T_OrderAction" >
<property name="orderserviceimpl">
<ref bean="orderserviceimpl"/>
</property>
</bean>

这里的左右下面7在一起说
7、当然是我们的struts2的配置文件struts.xml:
第一步增加:<constant name="struts.objectFactory" value="spring" /> 这里和上面的冲突 声明一个地方就可以了
我们来看一个action:
<action name="order_list" class="order_list">
<result name="list">list.jsp</result>
</action>
这个action的类我们并没有指定实际的类,而是通过hiberante来注入 class 参考6的 bean id 6的bean id就是7的action的class
并且通过这个bean找到action,我这里是com.ibmsoft.action.T_OrderAction 并且注入orderserviceimpl
orderserviceimpl是实现业务层相关的方法
8、至于Dao,Service,Action的接口和实现类就不一一贴出来了
spring开发最求尽量将所有的类写在接口中,并且通过集成这个接口来实现
9、另外在业务中推荐将DAO,Serive层通用话,可以节约很多代码,在通过过程中 推荐使用java.io.Serializable 来处理当然也可以java.io.Serializable[]
10、最后就是需要注意的涉及到复杂的业务,尽量一个业务层只产生一个事务,涉及到的多个事件的时候根据你的代理类的情况
将多个实现方法写在代理类中。。
文章来源:[url]http://www.laolang.cn/show-910-1.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值