第二章 SpringBoot注解 @Configutation

/**
 * 1、配置类里面使用@Bean标注在方法上给容器注入返回值对象
 * 2、配置类本身也是组件
 * 3、proxyBeanMethods:代理bean的方法
 *    Full(proxyBeanMethods = true) 全模式,容器中注入的是Configuration类的代理对象
 * com.koral.boot.config.MyConfig$$EnhancerBySpringCGLIB$$77d3b0b4@7412ed6b,检查
 * 容器中是否已经存在组件 启动相对慢
 *    Lite(proxyBeanMethods = false) 轻量级模式,容器中注入的是Configuration类
 * com.koral.boot.config.MyConfig@1e9469b8,不检查容器是否存在组件 启动快
 * 
 * 可以解决组件依赖的问题 
 *
 */

@Configuration(proxyBeanMethods = true) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {

    /**
     * 外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象
     * @return
     */
    @Bean//给容器中添加组件,以方法名作为组件的id。返回类型就是组件类型。返回的值,就是存在组件中的实例
    public User user01(){

        User zhangsan = new User("zhangsan", 18);
        //proxyBeanMethods = true时,user组件依赖 Pet组件,启动时SpringBoot容器会检查是否已经存在Pet组件
        //如果存在就直接取,不存在才创建
        zhangsan.setPet(tomcatPet());
        return zhangsan;
    }

    @Bean
    public Pet tomcatPet(){
        return new Pet("tom");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

koral chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值