为什么@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。