nacos-group / nacos-spring-project

Nacos ECO Project for Spring Framework
https://nacos.io/
Apache License 2.0
756 stars 311 forks source link

registerStringValueAnnotationBeanPostProcessor cause error in springboot3.x #347

Closed ilaotan closed 2 months ago

ilaotan commented 2 months ago

Issue Description

Type: bug report or feature request

Describe what happened (or what feature you want)

java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at com.alibaba.nacos.spring.util.NacosBeanUtils.registerStringValueAnnotationBeanPostProcessor(NacosBeanUtils.java:368)

Describe what you expected to happen

public class SpringValueAnnotationBeanPostProcessor extends AbstractAnnotationBeanPostProcessor and public abstract class AbstractAnnotationBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter

InstantiationAwareBeanPostProcessorAdapter was removed in springboot3.x

How to reproduce it (as minimally and precisely as possible)

Tell us your environment

Anything else we need to know?

ilaotan commented 2 months ago

临时解决办法是把 registerStringValueAnnotationBeanPostProcessor(registry) 这行特性去掉。 https://github.com/nacos-group/nacos-spring-project/commit/eb8b10f3f317238ea21c969fe68c623cb1df9d22

hujun-w-2 commented 2 months ago

升级到2.1.1-RC

ilaotan commented 2 months ago

升级到2.1.1-RC

@hujun-w-2 大哥 审题啊 我用的就是2.1.1-RC issue中写到: AbstractAnnotationBeanPostProcessor 使用的InstantiationAwareBeanPostProcessorAdapter在springboot3中已经被移除了

public class SpringValueAnnotationBeanPostProcessor
extends AbstractAnnotationBeanPostProcessor
and
public abstract class AbstractAnnotationBeanPostProcessor extends
InstantiationAwareBeanPostProcessorAdapter

but!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
InstantiationAwareBeanPostProcessorAdapter was removed in springboot3.x
ilaotan commented 2 months ago

另外看了下alibaba/spring-context-support仓库 2022年就有人提合并请求了 至今没人处理 这项目荒废了吗? 荒废了就别引用了 https://github.com/alibaba/spring-context-support/pull/53/commits

hujun-w-2 commented 2 months ago

该问题已经解决,近期会发布新版本

升级到2.1.1-RC

@hujun-w-2 大哥 审题啊 我用的就是2.1.1-RC issue中写到: AbstractAnnotationBeanPostProcessor 使用的InstantiationAwareBeanPostProcessorAdapter在springboot3中已经被移除了

public class SpringValueAnnotationBeanPostProcessor
extends AbstractAnnotationBeanPostProcessor
and
public abstract class AbstractAnnotationBeanPostProcessor extends
InstantiationAwareBeanPostProcessorAdapter

but!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
InstantiationAwareBeanPostProcessorAdapter was removed in springboot3.x

你的问题中没有提到版本,这个问题之前在其他版本也出现过,所以我才问你,这个问题已经被解决,近期会发布正式版,参考:https://github.com/nacos-group/nacos-spring-project/pull/346

ilaotan commented 2 months ago

该问题已经解决,近期会发布新版本

升级到2.1.1-RC

@hujun-w-2 大哥 审题啊 我用的就是2.1.1-RC issue中写到: AbstractAnnotationBeanPostProcessor 使用的InstantiationAwareBeanPostProcessorAdapter在springboot3中已经被移除了

public class SpringValueAnnotationBeanPostProcessor
extends AbstractAnnotationBeanPostProcessor
and
public abstract class AbstractAnnotationBeanPostProcessor extends
InstantiationAwareBeanPostProcessorAdapter

but!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
InstantiationAwareBeanPostProcessorAdapter was removed in springboot3.x

你的问题中没有提到版本,这个问题之前在其他版本也出现过,所以我才问你,这个问题已经被解决,近期会发布正式版,参考:#346

抱歉哈 下次我写明白了