spring整合struts2(hibernate的配置和spring配置文件综合在一起)
2014-03-07 22:20
696 查看
第一步就是引入struts2和spring最基本已经struts中的spring-plugin的jar包,然后在web.xml配置filter引入struts2和配置listener引入spring如:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然后在struts.xml中配置action时要注意的是class对于的不再是具体的action类,struts已经把注入的任务交给了spring了。至于引入spring-plugin这个jar包是因为它把objectfactory改为了spring中的objectfactory。可以在struts—core中看到defaultproperties的文件中看到# struts.objectFactory = spring,默认是不引用spring的factory的,但是引入struts2-spring-plugin的jar包后就会覆盖这个默认的设置,因为容器加载完struts—default.xml后会加载struts2-spring-plugin的jar包中的struts-plugin.xml,因此会覆盖,所以会成功整合spring。
配置一个action类的一个例子。:
首先在applicationContext.xml中配置相应的bean;
<bean id="loginService" class="com.ccy.service.impl.LoginServiceImpl" scope="singleton"></bean>
<bean id="loginAction" class="com.ccy.action.LoginAction" scope="prototype">
<property name="loginService" ref="loginService"></property>
</bean>
然后在struts中配置相应的action:
<action name="login" class="loginAction">
<result name="success">/loginsuccess.jsp</result>
<result name="error">/login.jsp</result>
</action>
注意这里的class不是指具体的类,而是指bean中红色的那个bean。这样就把装配任务交给了spring,注意scope的五个配置的值:singleton是指单例,就是说从头到尾都只有一个这样的bean,适合配置那些无状态的bean,而prototype是指每次调用都会new 一个这样的bean,适合有状态的类,而request是指在web引用中,发出请求就new一个bean,这种情况下和prototype一样,但是它仅仅可以用在web应用中,有请求才发生作用,prototype可以用在普通的项目,也可以用在web项目中,因此可以使用prototype代替request,session是指在web应用中的整个会话都起作用。只会在会话中生成一次。最后一个是globalsession,这个一般不会用到。最后要什么一点就是用spring框架最好就用接口编程的方法,否则还不如不用spring这个框架。我个人对spring的一个很浅显的认识就是spring倡导的思想就是为每个client通过beanfactory提供一个方法的接口让你调用,至于后台它调用哪个实例,哪个方法,如何实现上层不需要了解。所以如果不用接口编程,还不如不用spring。同时用接口编程的一个好处就是到时候改实现的具体方法和类都需要改一下配置文件和实现的类,不用理会调用的类。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然后在struts.xml中配置action时要注意的是class对于的不再是具体的action类,struts已经把注入的任务交给了spring了。至于引入spring-plugin这个jar包是因为它把objectfactory改为了spring中的objectfactory。可以在struts—core中看到defaultproperties的文件中看到# struts.objectFactory = spring,默认是不引用spring的factory的,但是引入struts2-spring-plugin的jar包后就会覆盖这个默认的设置,因为容器加载完struts—default.xml后会加载struts2-spring-plugin的jar包中的struts-plugin.xml,因此会覆盖,所以会成功整合spring。
配置一个action类的一个例子。:
首先在applicationContext.xml中配置相应的bean;
<bean id="loginService" class="com.ccy.service.impl.LoginServiceImpl" scope="singleton"></bean>
<bean id="loginAction" class="com.ccy.action.LoginAction" scope="prototype">
<property name="loginService" ref="loginService"></property>
</bean>
然后在struts中配置相应的action:
<action name="login" class="loginAction">
<result name="success">/loginsuccess.jsp</result>
<result name="error">/login.jsp</result>
</action>
注意这里的class不是指具体的类,而是指bean中红色的那个bean。这样就把装配任务交给了spring,注意scope的五个配置的值:singleton是指单例,就是说从头到尾都只有一个这样的bean,适合配置那些无状态的bean,而prototype是指每次调用都会new 一个这样的bean,适合有状态的类,而request是指在web引用中,发出请求就new一个bean,这种情况下和prototype一样,但是它仅仅可以用在web应用中,有请求才发生作用,prototype可以用在普通的项目,也可以用在web项目中,因此可以使用prototype代替request,session是指在web应用中的整个会话都起作用。只会在会话中生成一次。最后一个是globalsession,这个一般不会用到。最后要什么一点就是用spring框架最好就用接口编程的方法,否则还不如不用spring这个框架。我个人对spring的一个很浅显的认识就是spring倡导的思想就是为每个client通过beanfactory提供一个方法的接口让你调用,至于后台它调用哪个实例,哪个方法,如何实现上层不需要了解。所以如果不用接口编程,还不如不用spring。同时用接口编程的一个好处就是到时候改实现的具体方法和类都需要改一下配置文件和实现的类,不用理会调用的类。
相关文章推荐
- Spring整合Struts2和Hibernate+Maven(二)之SSH的配置文件
- struts2、Spring、Hibernate的整合-配置文件 2017年01月05日 17:23:10 118人阅读 评论
- Spring3.0、Hibernate3.0、Struts2整合文件配置
- 学习三大框架Struts2 、 Hibernate 、 Spring时,涉及到三大框架的配置文件以及整合。
- spring整合hibernate配置文件
- struts2,hibernate,spring三大框架整合的注册程序(xml 配置,mysql数据库)
- Spring整合Hibernate开发 - 使用事务管理器操作数据库 - 主配置文件
- Spring4学习笔记-Spring4整合Struts2(基于配置文件的方式)
- ssh整合之不带hibernate配置文件的spring中的配置
- Struts2 Spring3 Mybatis 3 整合 相关配置文件
- spring整合hibernate配置文件
- Spring与Hibernate配置文件整合
- struts+hibernate+spring 整合配置文件
- spring整合hibernate步骤及配置文件
- spring整合struts2后,struts2的action中调用服务层时,不需要在spring配置文件中去注入
- Struts2_Spring4_Hibernate4整合及综合案例
- Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置
- spring整合hibernate配置文件
- Spring整合hibernate配置文件
- Spring和Hibernate整合配置文件