SpringBoot---@Configuration
1,使用@Configuration标明在类上,说明这个类是配置类,相当于springmvc里的xml配置文件
2,配置类本身也是一个组件和容器
3,配置类中,用@Bean给容器中添加组件,方法名作为组件的 id ,返回值类型为组件的类型,返回的值,就是组件在容器中的一个实例
3.1:@Bean(“xxx") 自定义组件的名称,默认为方法名
4,@Configuration的 proxyBeanMethods 属性,
4.1:属性值为true(Full模式,程序运行慢,但占用内存小【因为需要检查容器中是否存在组件,但不需要新建对象占用内存】):代理对象调用组件,spring boot会检查这个组件是否在容器中,保持组件的单实例(每次调用这个组件的对象都是一样的),
4.2:属性值为false(Lite模式,程序运行快,但占用内存大【因为需要新建对象,但是不需要检查容器中是否存在组件】):每一次调用组件里的方法,都会产生一个新的对象
5, proxyBeanMethods 属性值的确定场景:
5.1:存在组件依赖时,属性值应该为true,例如:
5.1.1:有User对象(User对象中有Pet属性)和Pet对象,分别在配置类中注册了User(张三,18岁)和Pet(旺财),当张三想要养一只名叫旺财的Pet时(User调用setPet()方法)
要保证张三养的旺财是在容器中的旺财(User组件需要依赖Pet组件)时,需要设置为Pet
5.2:不存在组件依赖时,可以用false。