spring整合struts2
[size=large][color=blue]struts2和spring的整合,關鍵點在於struts2中的action要納入spring容器的管理中成為一個bean。
可以在struts2中配置:
<struts>
<constant name="struts.objectFactory" value="spring" />
</struts>
同時action的配置class='beanID',訪問該Action時,會通過class對應值去spring中尋找相同id值的bean。
也可以複製struts2-spring-plugin-x-x-x.jar到WEB-INF/lib目錄下。
在struts2-spring-plugin-x-x-x.jar中有一個struts-plugin.xml配置檔案,該配置檔案配置內容:
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!-- Make the Spring object factory the automatic default -->
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.class.reloading.watchList" value="" />
<constant name="struts.class.reloading.acceptClasses" value="" />
<constant name="struts.class.reloading.reloadConfig" value="false" />
<package name="spring-default">
<interceptors>
<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
</interceptors>
</package>
</struts>
可以看出該spring外掛的作用就是關聯struts action和spring bean,在struts中就不必再配置 <constant name="struts.objectFactory" value="spring" />了。
1,action的class值應等於spring中的bean id值,實現關聯,action由spring建立。
2,若查不到,則由該spring外掛根據class的值建立action,並把該action賦給spring託管,在這種情況下action的建立不是由struts2完成,而是由外掛完成,並且外掛擁有把action納入spring容器管理的功能,此時spring配置檔案中可以不必配置action的bean了。
兩種方式都使得action成為了spring中的一個bean例項。
所以,class既可以為beanId,也可以為類路徑,當尋找到對應bean時可以直接作為bean訪問,若尋找不到,則會由外掛根據class類路徑負責建立action例項並送給spring成為其管理的一個bean。
不過若是所有action都不顯示的在spring中配置為bean,而是通過該spring外掛根據class建立bean的話,那麼如何把service注入action中?反正通過註釋的形式可以在action類中注入service類,除此之外還有別的方法沒...............[/color][/size]
可以在struts2中配置:
<struts>
<constant name="struts.objectFactory" value="spring" />
</struts>
同時action的配置class='beanID',訪問該Action時,會通過class對應值去spring中尋找相同id值的bean。
也可以複製struts2-spring-plugin-x-x-x.jar到WEB-INF/lib目錄下。
在struts2-spring-plugin-x-x-x.jar中有一個struts-plugin.xml配置檔案,該配置檔案配置內容:
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!-- Make the Spring object factory the automatic default -->
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.class.reloading.watchList" value="" />
<constant name="struts.class.reloading.acceptClasses" value="" />
<constant name="struts.class.reloading.reloadConfig" value="false" />
<package name="spring-default">
<interceptors>
<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
</interceptors>
</package>
</struts>
可以看出該spring外掛的作用就是關聯struts action和spring bean,在struts中就不必再配置 <constant name="struts.objectFactory" value="spring" />了。
1,action的class值應等於spring中的bean id值,實現關聯,action由spring建立。
2,若查不到,則由該spring外掛根據class的值建立action,並把該action賦給spring託管,在這種情況下action的建立不是由struts2完成,而是由外掛完成,並且外掛擁有把action納入spring容器管理的功能,此時spring配置檔案中可以不必配置action的bean了。
兩種方式都使得action成為了spring中的一個bean例項。
所以,class既可以為beanId,也可以為類路徑,當尋找到對應bean時可以直接作為bean訪問,若尋找不到,則會由外掛根據class類路徑負責建立action例項並送給spring成為其管理的一個bean。
不過若是所有action都不顯示的在spring中配置為bean,而是通過該spring外掛根據class建立bean的話,那麼如何把service注入action中?反正通過註釋的形式可以在action類中注入service類,除此之外還有別的方法沒...............[/color][/size]
相關文章
- Struts2【與Spring整合】Spring
- spring整合struts2(續)Spring
- [求助] STRUTS2和SPRING整合問題Spring
- 框架(Spring、Struts2和Hibernate三者)整合框架Spring
- struts2 + urlrewrite 整合注意事項
- Struts2,Hibernate,Spring 環境配置Spring
- Spring Boot整合Spring BatchSpring BootBAT
- Spring Boot整合Spring SecuritySpring Boot
- Spring Boot整合Spring AopSpring Boot
- Spring 整合 MyBatisSpringMyBatis
- mybatis整合springMyBatisSpring
- ActiveMq整合SpringMQSpring
- Spring整合MyBatisSpringMyBatis
- Spring整合JUnitSpring
- Spring整合WebSocketSpringWeb
- Spring Cloud 整合SpringCloud
- MyBatis(九) 整合Spring、整合SpringMVCMyBatisSpringMVC
- Spring Boot:整合Spring Data JPASpring Boot
- spring:spring與mybatis的整合SpringMyBatis
- spring-boot+spring-session整合SpringbootSession
- spring+redis的整合,使用spring-data-redis來整合SpringRedis
- Unit08: Spring與MyBatis整合 、 Spring整合MyBatis應用SpringMyBatis
- Spring Boot整合rabbitmqSpring BootMQ
- Spring框架|整合JdbcTemplateSpring框架JDBC
- Spring Boot 整合 rabbitmqSpring BootMQ
- Spring Boot 整合 elasticsearchSpring BootElasticsearch
- Spring Boot 整合 dockerSpring BootDocker
- Spring Boot 整合 elkSpring Boot
- Spring Boot 整合 ApolloSpring Boot
- Spring Boot整合RedisSpring BootRedis
- Spring Boot 整合redisSpring BootRedis
- Spring Boot 整合 MyBatisSpring BootMyBatis
- Spring與ActiveMQ整合SpringMQ
- Spring整合Mybatis plusSpringMyBatis
- Spring Boot整合SocketSpring Boot
- spring與redis整合SpringRedis
- Spring 整合 HibernateSpring
- Mybatis與Spring整合MyBatisSpring