三大框架整合中怎样把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;
}
}
}
浙江启扬智能科技有限公司
2023-06-12 广告
2023-06-12 广告
Linux 嵌入式系统中,USB 启动模式能够烧写 ARM 的 uboot 的原因主要有以下几个方面:1. USB 启动模式相对于传统的 BIOS 启动模式来说,具有更高的兼容性和灵活性,可以支持更多的硬件设备和操作系统。2. USB 启动...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
展开全部
。。。。很简单啊,web.xml 一配就完活!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此处<bean id="Access" class="com.oamanage.interceptor.LoginAccessControl" scope="prototype">中需要把class的值修改成spring中配置成功的action的id(或者是name,有点记不清楚了)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询