[spring] @Configuration と @Component は違う、あるいは @Bean lite mode について
Spring の @Configuration は @Component の stereotype だと思っていたが、挙動が違うとのこと。
@Bean Lite Mode
というものがあって、@Component を利用すると CGLIB proxy を利用した aspect 系の処理が動かないらしい。
https://github.com/spring-projects/spring-framework/issues/14061
歴史を振り返ると、spring 3 の頃にバグ報告されたから lite mode ということにしたようにもみえる(深追いしてない)。
(全く知らなくてまつださんに教えてもらった)
【20191123 追記】
Spring framework 5.2 以後では、@Configuration(proxyBeanMethods=false)
と書けるようになっているから、これを利用するのが良さそう(意図が明確なので)。