我试图了解我们使用@Configuration制作的bean如何覆盖默认情况下由SpringBoot生成的bean.我一直致力于一个项目,在很多情况下我们为像ZuulConfigs这样的东西创建bean,并且假设是,无论我们做什么,都应优先于默认生成的bean.我一直试图解决这个问题,但不能.基本上,
非常感谢帮助
我有用于从 Kafka 主题读取 avro 消息的 spring 程序。当消息读取发生异常时:
org.springframework.messaging.converter.MessageConversionException:无法从 [com.mycompany.myapp.domain.avro.GreetingRecord] 转换为 [com.mycompany.myapp.domain.avro.GreetingRecord]
在调试中,我看到 ClassUtils.isAssignable 为同一类返回 false:
Class <?> targetClass = parameter.getParameterType();
Class <?> payloadClass = payload.getClass();
if (ClassUtils.isAssignable(targetClass, payloadClass)) { // return false for same class
this.validate(message, parameter, payload);
return payload;
} else {
if (this.converter instanceof SmartMessageConverter) {
SmartMessageConverter smartConverter = (SmartMessageConverter)this.converter;
payload = smartConverter.fromMessage(message, targetClass, parameter);
} else {
payload = this.converter.fromMessage(message, targetClass);
}
}
Run Code Online (Sandbox Code Playgroud)
我发现 targetClass 和 payloadClass 中的类加载器不同(RestartClassLoader和Launcher$AppClassLoader)
目标(有效载荷)类定义:
/**
* Autogenerated by …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我必须使用Spring根据OSGi包中的一些业务条件加载bean.这个bean不用于导出,用于计算inisde我的包.基本上我有一个实际的服务组件,它被导出,并且它必须在内部使用这个Spring bean.但...
有没有办法做到这一点?