前言
Spring框架中有一个出现频次很高的注解@Configuration,特别是在SpringBoot的spring-boot-autoconfigure包中,可以发现每个配置类基本都会加上@Configuration(proxyBeanMethods=false)注解(注:Spring 5.2+),其中proxyBeanMethods属性起到什么作用呢?
总结
Spring在5.2版本中引入了proxyBeanMethods,且默认值为true,即默认会对配置了@Configuration的类生成代理对象,文章前面我们看到SpringBoot2.2版本开始所有的AutoConfiguration类都会显示的配置@Configuration(proxyBeanMethods = false),这样做因为SpringBoot内部大量使用到自动配置特性,生成代理对象会使spring的启动时间增加,同时也会额外增加代理部分的对象内存
建议平时创建Configuration类时,参考SpringBoot给加上proxyBeanMethods =false属性,当然不加也是可以的,对项目本身性能影响也不大,看自己的习惯啦!