从Kotlin属性创建一个Spring Bean

时间:2018-06-22 17:57:40

标签: spring kotlin

我正在将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

有人知道更好的方法吗?

0 个答案:

没有答案