我有一個現有的Spring Boot項目(1.4.3.RELEASE),並試圖使用雲AWS項目添加一些功能。但是,僅僅在Gradle構建文件中添加依賴關係會導致在實例化一個@Configuration類時出現明顯的cglib問題。Spring Cloud AWS cglib問題
添加以下行搖籃構建和運行應用程序:
compile("org.springframework.cloud:spring-cloud-starter-aws-messaging:1.1.3.RELEASE")
原因:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.***.application.config.AwsConfig$$EnhancerBySpringCGLIB$$5301ed81]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.***.application.config.AwsConfig$$EnhancerBySpringCGLIB$$5301ed81.() at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:85) ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE]
它是在抱怨我@Configuration類沒有找到一個非空的構造,但那些在最新版本的Spring中受支持。如果我刪除依賴關係,該應用可以正常啓動。如何解決這個問題,而無需重新配置我的類?等待Cloud AWS的更新版本?
此版本的AWS消息傳遞基於Spring Boot 1.3,它使用Spring 4.2,它不支持非空的構造函數。你可以嘗試強制Spring的依賴性爲4.3,但是它使用Spring Boot 1.3的事實可能使其不適用於1.4(對於Boot的內部API更改等)。 –
感謝您的回覆。我重新配置類有一個空的構造函數和autowire的依賴關係,但現在即使自動裝配行爲也無法正常工作。不知道爲什麼加入這會導致核心Spring的行爲如此混亂,但哦。我會看看我能否想出一個黑客解決方法。 – koreys
也只是爲了更新......我將Spring Boot版本降級到了1.3.8,而我仍然遇到同樣的問題,即配置類沒有得到它的字段自動裝配。刪除這個依賴關係,一切都按照原樣運行。 – koreys