以上就是我们要说的proxyBeanMethods属性的作用。而且,该属性还另外引申出了这样一个概念,Spring Boot在底层对@Configuration注解有两种配置,它们分别是:
Full:即@Configuration(proxyBeanMethods = true),一般称为全配置
Lite:即@Configuration(proxyBeanMethods = false),一般称为轻量级配置
也就是说,以后我们想要给容器中添加组件的时候,不是会编写一个配置类嘛,然后,如果@Configuration注解里面的proxyBeanMethods属性的值为true,那么配置类里面每一个向容器中注册组件的方法在外面都能随便调用,而且该方法都会去容器中找组件,这就是所谓的Full模式;如果@Configuration注解里面的proxyBeanMethods属性的值为false,那么配置类组件本身在容器中就再也不会被保存为代理对象了,这样,当你在外面无限次调用其中的方法时,你的每一次方法调用就都会产生一个新的对象了,这就是所谓的Lite模式。
说了这么多,那么它适用于什么场景呢?我就直说了吧!组件依赖必须使用默认的Full模式,其他则默认使用Lite模式。