UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Spring Boot】@Configurationアノテーションの(proxyBeanMethods = false)とは

Springの以下のアノテーションの使い方がわからなかったので調べた

@Configuration(proxyBeanMethods = false)

これはBean Lite Modeと呼ばれるものらしく、CGLIB proxy を明示的に利用せずBean登録する設定らしい

CGLIBとは、プログラムのコンパイル後にクラスを動的に生成することができるJavaのライブラリで、Springで利用されている

そして、下のissueを読むとSpringでは@Configurationのみの場合は、CGLIB proxyを作成することを意味するが、これは潜在的に非常にコストのかかる操作で、ほとんどの場合不要とのこと

github.com

なのでパフォーマンスの観点で、CGLIB proxyをあえて使うことがなければ、@Configuration(proxyBeanMethods = false)にしておくのが良いみたい

ただ、あえて使うべき場面がわかってないから、それは後日調べる

参考

Configuration annotationのproxyBeanMethodsとBean Lite Modeについての備忘録 - すきま風

動的プロキシ(DynamicProxy)をできる限りわかりやすく解説してみる - Qiita