【发布时间】:2020-10-26 07:53:12
【问题描述】:
来自this的问题,可以用枚举注入map吗?
例如,我有枚举:
class enum SomeEnum (val value) {
ONE("one"),
TWO("two"),
THREE("three")
}
我有一些实现接口:
interface SomeInterface {
}
@Component
@Qualifier("one")
class OneClass: SomeInterface {
...
}
@Component
@Qualifier("two")
class TwoClass: SomeInterface {
...
}
@Component
@Qualifier("three")
class ThreeClass: SomeInterface {
...
}
但是这样的注入不起作用:
@Component
@ConfigurationProperties
class SomeProperties {
@Autowired
lateinit var someMap: Map<SomeEnum, SomeInterface>
}
我想自动注入 someMap。我该如何解决它,在 Spring 框架端制作这样的代码?
var someMap: Map<SomeEnum, SomeInterface> = Map.of(ONE, oneClass,
TWO, twoClass,
THREE, threeClass)
// Where oneClass, twoClass, threeClass - beans instances
【问题讨论】:
标签: spring-boot kotlin dependency-injection