首页 > 其他分享 >SpringBoot - @Configuration,@Bean,@Scope 组件注入容器

SpringBoot - @Configuration,@Bean,@Scope 组件注入容器

时间:2022-12-20 15:24:54浏览次数:64  
标签:SpringBoot Object Bean 单例 组件 Scope Configuration

@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

相关文章