Spring拦截器的Java配置,其中拦截器使用自动装配的Spring Bean
我想将spring
mvc拦截器添加为Java配置的一部分。我已经有一个基于xml的配置,但是我正在尝试转到Java配置。对于拦截器,我知道可以通过spring文档中的方法来做到这一点-
@EnableWebMvc@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LocaleInterceptor());
}
}
但是我的拦截器使用的是自动连接到其中的spring bean,如下所示:
public class LocaleInterceptor extends HandlerInterceptorAdaptor { @Autowired
ISomeService someService;
...
}
SomeService类如下所示:
@Servicepublic class SomeService implements ISomeService {
...
}
我正在使用注释@Service
来扫描Bean,但尚未在配置类中将其指定为@Bean
据我了解,由于java config使用new创建对象,因此spring不会自动将依赖项注入其中。
我如何在Java配置中添加这样的拦截器?
回答:
只需执行以下操作:
@EnableWebMvc@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
LocaleInterceptor localInterceptor() {
return new LocalInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeInterceptor());
}
}
当然,LocaleInterceptor
需要在某处(XML,Java Config或使用批注)将其配置为Spring
bean,以便WebConfig
注入相关字段。
可以在此处找到有关Spring
MVC配置的常规自定义文档,特别是对于Interceptor,请参阅本节。
以上是 Spring拦截器的Java配置,其中拦截器使用自动装配的Spring Bean 的全部内容, 来源链接: utcz.com/qa/428354.html