<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
<bean id="profiler" class="cn.com.xyz.action.SimpleProfiler" />
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="test" expression="(execution(* cn.com.xyz.action.*Action.*()))" />
<aop:around pointcut-ref="test" method="profile" />
</aop:aspect>
</aop:config>
通过一下这篇文章:http://xuxingyin.iteye.com/blog/600091
struts.xml文件:
<action name="login" class="memberAction" method="login"> <result name="loginSuc">${nextPage}</result> <result name="loginFail">login.jsp</result> </action>
spring的applicationcontext.xml配置文件:
//action
<bean id="memberAction" class="com.edgar.s2shlogin.web.action.MemberAction" scope="prototype"> <property name="memberService"> <ref bean="memberService" /> </property> </bean>
<!-- 自动代理对象 --> <bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="proxyTargetClass" value="true"/> //注意这里! <property name="beanNames"> <list> <value>*Action</value> </list> </property> <property name="interceptorNames"> <list> <value>checkArgumentsAdvice</value> <value>exceptionLogger</value> </list> </property> </bean>
当struts2的action没有配置动态方法调用的时候,运行正常。当使用动态方法调用的时候,运行时报
类似: NoSuchMethodException:$Proxy6.login() 的错误,解决办法是使用CGLib实现aop,加上
<property name="proxyTargetClass" value="true"/>
如果使用 aop:方式的话,加上<aop:aspectj-autoproxy proxy-target-class="true"/>
|
应该注意的是expression="(execution(* cn.com.xyz.action.*Action.*()))" 路径一定要配置正确要不出莫名其妙的问题,这里总结下留下作为以后参考!
分享到:
相关推荐
4. **连接Struts2和Spring**:在Struts2的配置文件(如`struts.xml`)中,我们需要配置Action类以使用Spring的依赖注入,这样Spring才能识别并应用AOP代理。 在实际的项目中,我们还需要考虑如何处理自定义参数。...
通过以上步骤,我们就完成了Struts2和Spring的整合,Action实例由Spring管理,并且能够使用自定义的拦截器。这种整合方式让开发者能够充分利用两者的优点,提高代码的可维护性和可扩展性。 值得注意的是,Struts2_...
本项目示例涵盖了这些框架的整合使用,以及jQuery AJAX登录、Struts拦截器和Spring AOP(面向切面编程)的应用。 1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它简化了...
同时,Struts2可以与Spring无缝集成,实现Action类的依赖注入,便于管理和测试。 三、Ibatis:持久层的优雅解决方案 Ibatis与传统的ORM框架不同,它并不完全取代SQL,而是将SQL语句与Java代码解耦,提供动态SQL...
同时,Struts2的拦截器链可以通过Spring的AOP机制进行扩展,以实现更灵活的功能。 然而,当在AOP中遇到问题时,可能的原因有以下几点: 1. **配置错误**:确保`struts.xml`和`applicationContext.xml`中的配置正确...
Struts2、Hibernate和Spring AOP是Java Web开发中三个重要的框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理HTTP请求,实现业务逻辑与视图的解耦;Hibernate是一个持久化框架...
在`struts-default.xml`中配置拦截器栈,并在`struts-plugin.xml`中关联Spring的AOP拦截器。 7. **测试与部署**: 测试时,可以使用Spring Test框架对Service层进行单元测试,而Struts2 Action可以通过MockMVC模拟...
4. **Action 类**:Action 类通常作为 Struts2 处理请求的入口,它可以从 Spring 容器中注入所需的依赖。通过在 Action 类上使用 `@Component` 注解并配置在 Spring 配置文件中,可以确保 Spring 能够创建和管理这些...
3. **AOP整合**:Spring的AOP可与Struts2的拦截器协同工作,如添加统一的异常处理。 4. **数据源配置**:Spring管理数据源,Hibernate通过Spring获取DataSource,实现数据访问。 5. **ModelDriven或FormDriven模式**...
5. **拦截器集成**:可以使用Spring的AOP拦截器与Struts 2的拦截器相结合,增强应用的功能。 6. **测试与调试**:整合完成后,进行单元测试和集成测试,确保所有组件协同工作。 整合Spring和Struts 2可以使开发...
通过CXF创建服务,利用Spring进行组件管理和依赖注入,再借助Struts2处理用户交互,可以构建出高效且稳定的业务系统。压缩包中的"CXFWebService"可能包含了项目配置、源代码、依赖库等资源,帮助开发者理解和学习...
Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP)功能,而 Struts2 则是用于构建 MVC(Model-View-Controller)架构的优秀框架。将两者结合使用,可以构建出高效、可维护性高的 web 应用程序。 首先,让...
2. **Struts2的Action配置**:在Struts2的配置文件中定义Action,这些Action会调用Spring管理的Service层方法,从而实现业务逻辑。 3. **Mybatis的动态SQL**:Mybatis允许在映射文件中编写动态SQL,使得SQL查询更加...
在实际项目中,通常使用Spring来管理Struts2的Action实例,通过Spring的DI实现Action类的依赖注入。同时,Spring负责管理Hibernate SessionFactory,提供透明的事务管理。在Struts2的Action执行完毕后,可以通过...
Struts2提供了更强大的动作拦截器(Action Interceptors),支持多种结果类型,以及更灵活的配置方式。此外,Struts2与Spring有很好的集成,可以方便地利用Spring的DI和AOP功能。 Hibernate5则是Java领域的一款持久...
3. 配置Struts2:配置struts.xml,定义Action及其结果,设置拦截器栈。 4. 配置MyBatis:创建mybatis-config.xml,定义数据源、事务工厂,以及Mapper接口和XML映射文件的路径。 5. 创建实体类、Mapper接口和XML映射...
10. **优化与性能**:集成后,可以进一步优化配置,例如使用Spring的缓存支持,或者Struts2的拦截器来提高性能。 以上是Spring 2.5集成Struts2.2的主要步骤和知识点。通过这样的集成,开发者可以充分利用两个框架的...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
在Struts2和Spring整合中,可以使用Spring提供的拦截器,例如`org.springframework.web.struts.DelegatingInterceptor`,它能让Spring容器处理Action的实例化。 7. **事务管理**:Spring提供了强大的事务管理功能。...
4. **整合Spring和Struts2**:使用Spring的Struts2插件,使Spring管理的Bean可以直接在Struts2 Action中注入使用。 5. **整合Spring和MyBatis**:通过Spring的SqlSessionFactoryBean,将MyBatis的SqlSessionTemplate...