小编enz*_*nzo的帖子

@Import注释的用例是什么?

根据官方文件:

注释类型配置

表示一个类声明了一个或多个@Bean方法,并且可以由Spring容器处理以生成bean定义...

@Configuration类可以使用@Import注释编写,与Spring XML中的工作方式不同.因为@Configuration对象在容器中作为Spring bean进行管理.

但我也可以在没有@Import的情况下使用@Configuration注释.我已经测试了下面列出的代码,它按预期工作.那么使用@Import的目的是什么?

DispatcherServletInitializer

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] { WebConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

 }
Run Code Online (Sandbox Code Playgroud)

WebMvcConfigurerAdapter

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "package.name" })
// @Import(OptionalConfig.class) 
public class WebConfig extends WebMvcConfigurerAdapter {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

OptionalConfig

@Configuration
public class OptionalConfig {

    @Bean(name = "myClass")
    public MyClass myClass() …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

11
推荐指数
5
解决办法
3万
查看次数

标签 统计

java ×1

spring ×1

spring-mvc ×1