三大框架整合中怎样把Struts2拦截器交给spring管理
三大框架整合中怎样把Struts2拦截器交给spring管理,我尝试了以管理action的方式给拦截器注入对象实例...对象一直为空...我不知道这么配置文件怎么来写这是...
三大框架整合中怎样把Struts2拦截器交给spring管理,我尝试了以管理action 的方式给拦截器注入对象实例...对象一直为空...我不知道这么配置文件怎么来写
这是我现在的配置文件:
<bean id="Contro" class.......></bean>
<bean id="Access" class="com.oamanage.interceptor.LoginAccessControl" scope="prototype">
<property name="ic" ref=“Contro"></property>
</bean>
ic注入失败...希望大家给点建议... 展开
这是我现在的配置文件:
<bean id="Contro" class.......></bean>
<bean id="Access" class="com.oamanage.interceptor.LoginAccessControl" scope="prototype">
<property name="ic" ref=“Contro"></property>
</bean>
ic注入失败...希望大家给点建议... 展开
3个回答
展开全部
如果非常需要注入的话,可以考虑用Spring AOP来代替Struts2拦截器。
我试过,结合自动代理工厂,可以方便的拦截Action。
实现登入验证,权限检查,日志记录,异常转发等都没有问题。
需要注意的是Action最好使用接口方式,例如有
interface LoginAction 和 class LoginActionImpl
因为Spring默认使用JDK动态代理,需要一个接口。
当然没有接口也行,只要启动CGLIB代理即可。
我试过,结合自动代理工厂,可以方便的拦截Action。
实现登入验证,权限检查,日志记录,异常转发等都没有问题。
需要注意的是Action最好使用接口方式,例如有
interface LoginAction 和 class LoginActionImpl
因为Spring默认使用JDK动态代理,需要一个接口。
当然没有接口也行,只要启动CGLIB代理即可。
更多追问追答
追问
..涉及底层代码,我还有点飘....LoginAccessControl(自定义拦截器)继承自AbstractInterceptor
追答
//applicationContext.xml
<bean id="logInterceptor" class="com.logging.LogInterceptor" />
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames" value="logInterceptor" />
<property name="beanNames" value="*Action,*Service,*Dao" />
</bean>
程序需要引入aopalliance-1.0.jar,spring的程序包中应该有。
public class LogInterceptor implements MethodInterceptor {
public Object invoke(MethodInvocation invocation) throws Throwable {
logMethodEnterInfo(invocation);
StopWatch watch = new StopWatch();
try {
Object result = invocation.proceed();
logMethodReturnInfo(invocation, result, watch);
return result;
} catch (Throwable t) {
logMethodThrowsInfo(t, watch);
throw t;
}
}
}
展开全部
。。。。很简单啊,web.xml 一配就完活!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此处<bean id="Access" class="com.oamanage.interceptor.LoginAccessControl" scope="prototype">中需要把class的值修改成spring中配置成功的action的id(或者是name,有点记不清楚了)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询