`
mackjieson
  • 浏览: 3237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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、最后就是需要注意的涉及到复杂的业务,尽量一个业务层只产生一个事务,涉及到的多个事件的时候根据你的代理类的情况
将多个实现方法写在代理类中。。
文章来源:http://www.laolang.cn/show-910-1.html
分享到:
评论
1 楼 guava 2009-08-09  
请问“2、生产hibernate的反向工程  ”是什么意思啊?

相关推荐

Global site tag (gtag.js) - Google Analytics