springboot+kotlin啟動時報錯@Configuration class may not be final


好久沒寫簡書了,中間經(jīng)歷了公司解散,重新面試,和等待通知
去研究了一段時間的區(qū)塊鏈
現(xiàn)在重新回來啦

springboot + kotlin 啟動報錯

項目是通過spring initializr創(chuàng)建的 ,語言選擇的kotlin,選擇了web配置

生成的application如下:

package com.example.demo

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication
class DemoApplication

fun main(args: Array<String>) {
    SpringApplication.run(DemoApplication::class.java, *args)
}

配置文件太長就沒必要粘貼上來了

這個時候我們按以前的方式啟動這個demo

出現(xiàn)以下異常:


org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
 Configuration problem: @Configuration class 'DemoApplication' may not be final. 
Remove the final modifier to continue.
Offending resource: com.example.demo.DemoApplication

大家特別注意這一句:

@Configuration class 'DemoApplication' may not be final.

回頭看下我們的DemoApplication沒毛病啊 spring initializr 幫我們生成的呀.

這是由于kotlin中所有類和方法默認都是final的,不能直接繼承或重寫

那如何解決呢?

需要繼承的類或類中要重寫的方法都應當在定義時添加open關鍵字。
我們?nèi)バ薷腄emoApplication代碼,在class前面加上open

open class DemoApplication

重新啟動,問題搞定

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容