@Configuration

@Configuration

1.作用:

从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext
 或者
 AnnotationConfigWebApplicationContext
 类进行扫描,并用于构建bean定义,初始化Spring容器。

2.注意点

/**

  • 1、配置类里面使用@Bean标注在方法上给容器注册组件,默认也是单实例的
  • 2、配置类本身也是组件
  • 3、proxyBeanMethods:代理bean的方法
  • Full(proxyBeanMethods = true)(保证每个@Bean方法被调用多少次返回的组件都是单实例的)(默认)
  • Lite(proxyBeanMethods = false)(每个@Bean方法被调用多少次返回的组件都是新创建的)
    */
    代码片段:
@Configuration(proxyBeanMethods = true)
public class MyConfig {
    @Bean
    public People people01(){
        People zs = new People("zs", 18,pet01());
        return  zs;
    }

    @Bean
    public Pet pet01(){
        Pet tomcat = new Pet("tomcat");
        return tomcat;
    }



}

  public static void main(String[] args) {
        //返回IOC容器
        ConfigurableApplicationContext run = SpringApplication.run(DemoApplication.class,args);

        //查看容器的组件
        String[] names = run.getBeanDefinitionNames();
        for (String name : names
             ) {
            System.out.println(name);

        }

        People people01 = run.getBean("people01", People.class);
        System.out.println(people01.toString());
        Pet pet01 = run.getBean("pet01", Pet.class);
        System.out.println(pet01.toString());

        System.out.println(people01.getPet()==pet01);
        //此处验证的是通过代理是否为单例模式,单例模式建造的对象在堆中是同一个对象



    }

结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值