1. spring.factories

这种bean创建方式通常用于自动装配环境配置相关的类,以及加载starter

 2. @Configuration+@ComponentScan

@Configuratin就是我们的环境配置类

一般来说,如果我们的配置类都在SpringBoot启动类路径下,如果不在则需要添加@ComponentScan或者spring.factories,这样导入相应包即可自动配置相应的bean。

此外@Configuration可以与@Conditional集(@ConditionOnClass, @ConditionOnMissingBean等)的注解一起使用

 

3. @Import直接导入

@import注解用于导入一个或者多个配置类或者普通java类,以便在当前的配置类中使用。

@Import使用方式:

  导入一个或多个配置类L:可以使用@Import导入其他使用了@Configuration注解的配置类,例如@Import(MyConfig.class)将会导入名为MyConfig的配置类

  导入普通java类:可以使用@Import导入非配置的java类,以便在当前类中使用

  此外,@Import只能在类上使用

 4. @Bean

@Bean只能用在方法上,对应的class需要加@Configuration注解;

代码中常用@Bean来注解诸如db、mq等配置信息,它有以下几个特点:

  • 可以指定bean的名称:可以使用name属性指定bean的名称,如果没有指定则将使用该方法名作为bean的名称
  • 可以指定bean的作用域,可以使用@Scope注解指定bean的作用域。默认情况下bean的作用域为单例(即在整个应用程序上下文中只有一个实例)
  • 可以指定bean的初始化方法和销毁方法:可以使用@postConstruct和@PreDestroy注解指定bean的初始化方法和销毁方法

 5 @Component+@ComponentScan

@Controller @Service @Repository都是基于@Component,默认如果我们的定义的@Component类都在SpringBoot启动类路径下,如果不在则需要添加@ComponentScan,如果不在则需要添加@ComponentScan来指定路径

6 FactoryBean接口

 

7 BeanDefinitionRegistryPostProcessor

参考文献

https://blog.csdn.net/2301_76607156/article/details/130424568

 

posted on 2025-06-11 11:39  colorfulworld  阅读(33)  评论(0)    收藏  举报