すきま風

勉強したことのメモとか

コンテナに存在するかわからないBeanをAutowiredする

Constructor Injection

class Foo(
    private val bar: Bar?
) {
}

Field Injection

class Foo {
    @Autowired(required = false)
    lateinit var bar: Optional<Bar>
}

前回の記事に関連して小ネタ。@Autowired(required = false)を知らなかったのでメモ。 Constructor Injectionを使わない場合、@Autowired(required = false)として、Optionalで定義することができる。
KotlinでOptionalを使うのはもったいないので、できるだけConstructor Injectionを使う方が良さそうです。

参考

【Spring】複数のBeanをAutowiredする。(おまけ付き) - Qiita