Java 接收到特定bean的请求
我正在使用Spring3MVC和基于注释的控制器开发webapp。我想定义一个拦截器,它将截获对特定bean的请求,而不是全部。我怎么能做到 现在我使用下面的配置,但它拦截对所有bean的请求Java 接收到特定bean的请求,java,spring-mvc,Java,Spring Mvc,我正在使用Spring3MVC和基于注释的控制器开发webapp。我想定义一个拦截器,它将截获对特定bean的请求,而不是全部。我怎么能做到 现在我使用下面的配置,但它拦截对所有bean的请求 <bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interce
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="sessionInterceptor"/>
</list>
</property>
</bean>
<bean id="sessionInterceptor" class="app.interceptors.SessionCheckInterceptor"/>
谢谢 在Spring 3中,您可以使用以下方法将拦截器绑定到特定URL:
对于更复杂的情况,您还可以使用AOP来拦截控制器方法调用。我认为拦截对bean的调用的最佳选择是使用
我已经找到了一个使用springplugins项目()的解决方案 它定义了两个自己的映射器:
- SelectedAnnotationHandlerMappingHandle仅用于定义的url
- IgnoreSelectedAnnotationHandlerMapping处理除已定义之外的所有UR
<mvc:interceptors>
<mvc:interceptor>
<bean class="app.interceptors.SessionCheckInterceptor" />
<mvc:mapping path = "/somePath/**" />
</mvc:interceptor>
</mvc:interceptors>
@Aspect
public class AroundExample {
@Around("com.xyz.myapp.SystemArchitecture.businessService()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// start stopwatch
Object retVal = pjp.proceed();
// stop stopwatch
return retVal;
}
}