gpt4 book ai didi

java - 在没有 WebMvcConfigurationSupport 的情况下注册 Spring HandlerInterceptor

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:25 29 4
gpt4 key购买 nike

我正在尝试使用 Java Config 扩展 WebMvcConfigurationSupport 在 Spring 中注册 HandlerInterceptor 实例。我正在创建一个带有注释的库,当添加到 @Configuration 类时,它会注册一个处理安全注释的拦截器。

我有一个使用 WebMvcConfigurationSupport#addInterceptors 的实现,但这与 spring 中的其他自动工作冲突,并且覆盖了应用程序自己的一些逻辑。对于应该简单的东西来说,它似乎也非常沉重。我现在正在尝试:

@Configuration
public class AnnotationSecurityConfiguration {

@Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping;

@PostConstruct
public void attachInterceptors() {
requestMappingHandlerMapping.setInterceptors(new Object[] {
new SecurityAnnotationHandlerInterceptor()
});
}

}

但是,拦截器注册到的 RequestMappingHandlerMapping 实例似乎与应用程序实际用于 Web 请求的实例完全不同。此外,当作为 BeanFactoryPostProcessor 实现时,当我尝试 beanFactory.getBean(RequestMappingHandlerMapping.class)

最佳答案

只是说明@Blauhirn 的评论,WebMvcConfigurerAdapter is deprecated as of version 5.0 :

Deprecated as of 5.0 WebMvcConfigurer has default methods (made possible by a Java 8 baseline) and can be implemented directly without the need for this adapter

引用新的做法:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyCustomInterceptor())
// Optional
.addPathPatterns("/myendpoint");
}
}

另外,as stated here , 不要用 @EnableWebMvc 注释,如果你想 keep Spring Boot auto configuration for MVC .

关于java - 在没有 WebMvcConfigurationSupport 的情况下注册 Spring HandlerInterceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28013671/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com