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类如下所示:

@Service

public 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

回到顶部