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

@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();
    }
}
复制代码

 

posted on   Mikasa-Ackerman  阅读(124)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示