组件的添加在SpringBoot2中是利用注解方式实现的,也就是我们常说的注解代替配置文件
- 在某个配置类前加上
@Configuration注解,就告诉了SpringBoot这是一个配置类,而在配置类中可以用一个方法来定义一个Bean组件,并且在方法前加上@Bean(value),表示该方法为一个组件,组件id为value,如果没写value则为方法名,返回类型为组件类型,返回值为组件实例
该注解中有一个参数是Boolean proxyBeamMethods- 值为
true时,称为Full模式,保证该组件为单实例对象 - 值为
false时,称为Lite模式,方法每次返回的都是新的实例
当该配置类下的某个组件依赖另一个组件时,该组件在实例化时必须检查容器中是否已经存在该组件实例,因此此时必须保证该组件为单实例,也就是proxyBeanMethods = true
- 值为
因此,当某个配置类的组件有依赖其他组件时,必须保证该配置类为
Full模式,否则,推荐Lite模式,因为其轻量级,加载速度更快
- 还有一种方法就是用
@Component、@Repository、@Service、@Controller来对组件类添加组件,不多赘述 - 还可以通过
@Import({User.class,Person.class})对组件进行添加 @Condition()表示按照某些条件判断是否添加组件,该注解有许多"子注解":
比如ConditionalOnBean(value)表示如果容器中存在某Bean组件,则将其注入容器,其他的可自行查询功能
@Conditional多在SpringBoot自动配置底层源码中经常用到
版权声明:本文为MarconiYe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。