添加组件使用到的常用注解,@Configuration,@Bean,@Import,@Conditional,@ImportResource,@ConfigurationProperties,@EnableConfigurationProperties
- @Configuration:
- 是一个配置类
- 本身也是一个组件
proxyBeanMethods属性:
- 决定这个bean是否代理
- 值为true时,springboot会检查这个组件是否在容器(Full模式)
- 默认为true,反之为Lite模式(轻量级)
- 可以保持组件的单实例
- @Bean
- 在方法上给容器注册组件,默认是单实例
- 方法名是组件id
- 返回类型是组件类型
- 返回值是组件实例
@Configuration(proxyBeanMethods = true)
public class MyConfig {
@Bean
public User user01(){
return new User("zhangsan",18);
}
}
- @Import
@Import({User.class,DBHelper.class})
- 在类前使用
- 为组件自动创建某种类型的组件
- 默认是组件名是全类名
- @Conditional
@ConditionalOnBean(name="tom")
- 条件装配,即满足条件时进行组件注入
- 在类前/方法前都可使用
- @ImportResource
@ImportResource("classpath:beans.xml")
- @ConfigurationProperties
@ConfigurationProperties(prefix="mycar")
- 在JavaBean类前
- 绑定配置文件中的值
- prefix属性指定跟配置文件中的哪个属性绑定
- 注意:JavaBean要添加
@Component
- @EnableConfigurationProperties
@EnableConfigurationProperties(Car.class)
- 在配置类前
- 开启类的配置绑定功能,将组件自动注册到容器中