簡體   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