@Configuration
作用:声明一个类为配置类,替代之前使用的xml文件
范围:类上
参数:proxyBeanMethods:boolean(default=true)
基本使用:注册一个类到IOC容器中
@Configuration public class MyConfiguration { @Bean public Object object(){ return new Object(); } }
proxyBeanMethods 参数说明:
proxyBeanMethods=true=Full模式
proxyBeanMethods=false=Lite模式
Full模式保证了组件是单例的,每次实例化一个组件,都要去IOC容器里面查看组件是否存在
Lite模式 不能声明@Bean之间的依赖,实例化时每次都是重新创建对象
配置类组件之间无依赖关系时使用Lite模式,这样做可以加快容器启动速度,减少判断
配置类组件之间有依赖关系时使用Full模式,这样做可以保证当方法被调用时,得到之前单实例的组件
@Bean
作用:把类注入到容器当中
范围:方法上
参数:name{} 声明组件的名称,initMethod/destroyMethod声明组件实例化之前于销毁之前会执行的方法
@Scope
作用:配合@Bean使用 设置类是单例还是多例
范围:类上,方法上
参数:value:singleton 单例 默认值,prototype 多例
基本使用:把类注入到容器,声明单例与多例
@Configuration public class MyConfiguration { @Bean(name="testObject",initMethod = "init",destroyMethod = "destory") @Scope(value="prototype") public Object object1(){ return new Object(); } //默认名称为方法名称 object2,scope默认为单例singleton @Bean @Scope public Object object2(){ return new Object(); } }
标签:SpringBoot,Object,Bean,单例,组件,Scope,Configuration From: https://www.cnblogs.com/ErenYeager/p/16994225.html