为什么@Primary有时候不适用于Kotlin类?
我有最怪的问题。
我有Java类A
,我也有Kotlin类KA
扩展A
,都是@Component
s, KA
也用@Primary
注释。
在一些组件中, KA
是自动装配的,而在其他组件中是A
实际上它比这更奇怪,对于不同的应用程序启动之间的相同的依赖bean,有时候KA
会自动装入,有时是A
如果我用Java重写KA
,那么一切都按预期工作。 所有相关类中的属性名称/构造函数参数名称是相同的: @Autowired A a;
。
也不要紧,如果我的Kotlin实现实现一个通用的接口或扩展基类。
所有Kotlin和Java类都生活在src/main/java
。
Kotlin版本是1.1.2-5
,我用的是jvm8。