代码:
@Component
open class UserProjectionQuery {
@Autowired
private lateinit var repository: UserDocumentRepository
@Autowired
private lateinit var updateEmitter: QueryUpdateEmitter
@QueryHandler
fun handle(query: QueryUserIdForUsername): String? {
//stuff
}
@EventHandler
fun on(evt: UserAuthenticated) {
//stuff
}
}显然,它既不注入我的存储库,也不更新发射器。事件处理程序创建AnnotationQueryHandlerAdapter而不是AnnotationEventHandlerAdapter。
解决方案是将@EventHandler移出以分离类,并保持它们在那里,而@QueryHandler也在单独的类中。
我记得它和java一起工作。我不确定我在这里错过了什么,但它似乎是一个spring-kotlin错误?任何建议都将不胜感激,谢谢
发布于 2019-05-09 22:55:06
这很奇怪。我确信我的示例对于类似的用例是正确工作的
考虑使用构造函数注入依赖项(避免使用var和lateinit)
class UserProjectionQuery(private val repository: UserDocumentRepository, private val updateEmitter: QueryUpdateEmitter)您还可以使用maven plugin打开所有kotlin-maven-plugin配置类:https://github.com/idugalic/digital-restaurant/blob/master/pom.xml#L177
https://stackoverflow.com/questions/56061403
复制相似问题