spring与struts2整合实现
</struts>
3)配置Spring监听器
web.xml
<listener>
?????? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
通过Spring配置来注册对象
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
?????? "-//SPRING//DTD BEAN//EN"
?????? "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
?????? <bean id="personManager" extends="struts-default">
?????????? <action name="foo" namespace="/secure" extends="default">
?????????? <action name="bar" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
?????? "-//SPRING//DTD BEAN//EN"
?????? "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
?????? <bean id="bar" singleton="false"/>
?????? ...
</beans>
5)好了,现在你的Struts2和Spring就能正常的一起工作了。有几个配置技术点需要详细说明下:装配模式。你可以通过设置修改struts.properties中下列属性的值来改变装配模式。
struts.objectFactory.spring.autoWire = type
该参数可供选择的设置值有
name 按照你的action的属性的名字和Spring里的bean的名字匹配,如果匹配就自动装配。这是缺省的
type 按照你的action的属性的类型,在Spring注册的bean中查找,如果相同就自动装配。这需要你在Spring中仅注册了一个此类型的bean
auto Spring会试图自动监测来找到最好的方法自动装配你的action
constructor Spring会自动装配bean的构造函数的参数
是否使用类缓存。你可以通过设置修改struts.properties中下列属性的值来改变是否使用Spring自身的类缓存机制。可以设定的值为true或false,默认为true。
struts.objectFactory.spring.useClassCache = false