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。

        

posted on 2022-01-03 11:08  倾城烟雨楼  阅读(303)  评论(0编辑  收藏  举报

导航