没有明确的Import语句的自动装配似乎仍然有效

时间:2018-04-04 22:55:30

标签: java spring

我有一个Java Spring应用程序,我正在尝试理解如何注入一个Autowire bean,即使我明确地不在@import注释中使用它。我的代码如下所示:

package com.pkg.test.configuration;

@Configuration
public class MySpringBeanConfig {

    @Bean
    public void constructMyBean() {
        ...
        ...
    }
}

这是使用Config的类

package com.pkg.test.configuration;

@Configuration
@Import({BlahClassConfig.class})
public class MySpringBeanConfig() {

    @Autowired private BlahClassConfig BlahClassConfig;
    @Autowired private MySpringBeanConfig MySpringBeanConfig;

    @Bean
    public void constructMyBean() {
        ...
        ...
    }
}

我有一个类来执行包扫描:

package com.pkg.test.configuration;

@Configuration
@ComponentScan({ "com.pkg.test.configration" })
public class ApplicationConfig {

}

现在,我没有抱怨MySpringBeanConfig的第一个Autowire不存在或者说无法自动装配的错误。这在某种程度上也很好。这有什么作用吗?

1 个答案:

答案 0 :(得分:0)

由于@ComponentScan注释,它起作用。它会导致com.pkg.test.configuration包扫描所有组件,配置等。因此,MySpringBeanConfig会被找到并处理。