Технически вы можете сделать это:
object MyObject {
lateinit var foo: String
}
@Configuration
class BeanConfiguration {
@Bean
fun myObject(): MyObject {
return MyObject.also {
it.foo = "foo"
}
}
}
, но я бы не рекомендовал такой подход, поскольку он кажется запахом кода.Лучше иметь простые class
es, поскольку Spring гарантирует, что методы, помеченные @Bean
, будут вызываться только один раз (если у них нет области действия прототипа).
Так как object
s don 'Не нужно создавать, вы можете управлять собственным жизненным циклом, если хотите, вам не нужно помещать все свои вещи в Spring.