繁体   English   中英

使用@Autowired 和@Component 时出现lateinit 属性未初始化错误

[英]Got lateinit property has not been initialized error when using @Autowired and @Component

这个 AwsSqsUtil class 有一个组件注释,当我想在我的主 function 中使用它时,我收到错误“kotlin.UninitializedPropertyAccessException:lateinit 属性 awsSqsUtil 尚未初始化,如何解决此问题?

"

@Component
class AwsSqsUtil {
   fun sendMessageToSqs() {
  }
}
@Autowired
private lateinit var awsSqsUtil: AwsSqsUtil

awsSqsUtil.sendMessageToSqs()

你的变量声明到底在哪里? 它是在作为组件/服务/控制器/等的 class 内,还是仅在顶层?

我希望您的回答是顶级杠杆或普通的 class,因为那是您通常会遇到这种情况的时候。

解决方案是将主 class 单独留在 spring 引导应用程序中。 如果您想在启动时运行某些东西,您可以创建一个使用@PostConstruct注释的乐趣(在适当的 spring 容器内)。 这样它将在 spring 应用程序实际启动后运行,您将能够随意自动装配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM