将Bean和Interceptor从外部jar添加到应用程序的上下文中

时间:2016-11-25 16:19:37

标签: java spring spring-mvc servlets

我有一个带有以下配置类的Web应用程序:

@Configuration
@EnableWebMvc
@EnableSpringDataWebSupport
class CustomMvcConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public MyBean myBean() {
        return new MyBean();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LocaleChangeInterceptor());
    }   
}

我想在应用程序中添加jar的依赖项,将另一个bean和另一个拦截器添加到上下文中。在另一个项目中,我有另一个WebMvcConfigurerAdapter类,但它没有运行:

@Configuration
@EnableWebMvc
@EnableSpringDataWebSupport
class OtherCustomMvcConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public OtherBean otherBean() {
        return new OtherBean();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CustomInterceptor());
    }   
}

如果我尝试将OtherBean注入到应用程序的类中,则上下文中不存在:

@Inject
private OtherBean otherBean;

并且CustomInterceptor不会运行。如何从外部模块向应用程序添加bean和拦截器?

1 个答案:

答案 0 :(得分:0)

我认为您只需要在MVC配置中添加适当的@Include注释。

@Include(OtherCustomMvcConfiguration.class)    
class CustomMvcConfiguration extends WebMvcConfigurerAdapter {
...
}