我正在将Kotlin用于Spring应用程序(而不是Spring Boot),并且我想根据属性创建Bean。
它最初是作为具有单独后备字段的功能
private val _guessCount = 10
@Bean
open fun guessCount() = _guessCount
但是后来我开始寻找一种更简洁的方法:
@Bean
open val guessCount: Int = 10
...引发异常
Kotlin: This annotation is not applicable to target 'member property with backing field'
所以我尝试使用get
访问器:
@get:Bean
open val guessCount: Int = 10
...引发另一个异常
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'int' available: expected single matching bean but found 1: getGuessCount
这个例外很有意义,但是现在我只能以这种方式解决它:
@get:Bean("guessCount")
open val guessCount: Int = 10
或
open val guessCount: Int = 10
@Bean("guessCount") get
这些工作,但是看起来有点难看。特别是使用字符串guessCount
有人知道更好的方法吗?