Java Spring:@Configuration类的注释

Java Spring:@Configuration类的注释,java,spring,Java,Spring,我是SpringBoot的新手,我不太了解这个类: @Configuration @EnableConfigurationProperties(...) @ComponentScan(basePackages = {...}) @Import(SomeClass.class) public class MyConfig { @Bean public IFactory myFactory(IService myService){ return new my

我是SpringBoot的新手,我不太了解这个类:

@Configuration
@EnableConfigurationProperties(...)
@ComponentScan(basePackages = {...})
@Import(SomeClass.class)
public class MyConfig {

     @Bean
     public IFactory myFactory(IService myService){
          return new myFactory(myService);
     }
     ...
}
  • 为什么我们在这里使用
    @ComponentScan
    ?Spring检测到这个配置的那一刻,它应该包括在no?中用
    @Bean
    注释的所有内容
  • @Import
    在这里做什么?为什么要导入一个类而不是在类内部用
    @Bean
    注释它
  • @Bean
    @ComponentScan
    下的类之间是否存在任何关系
  • @ComponentScan扫描其他@Configuration/@Component/@Service/etc注释类,例如您指定的基本包。它与配置中的@Beans无关
  • @Import显式导入另一个@Configuration及其所有@Bean定义
  • 使用@Bean和@ComponentScan注释方法(搜索使用@Component注释的Java类)是实现相同目标的两种不同方法:注册@Bean定义/创建@Bean
    如果我们@导入一个控制器?这是什么意思?所以这三个注释基本上只做一件事:注册bean?所以,如果我理解正确,@Configuration用于注册bean?你不会真的@Import控制器。这三个注释都是用来声明bean的,是的。如果您想有更详细的描述,请查看本文(我写的)。它详细介绍了如何注册bean等所有不同的方法。