Spingboot替换掉jar包里面的@Bean
问题
如下图,我们需要替换掉JsoncCfg配置类里面的YCloudObjectMapper这个Bean。
这个Bean是在依赖的第三方jar包中的,因为用了@Bean而不是像@Component这种组件扫描添加的,所以不能使用@ComponentScan注解进行排除。
现在不能修改jar包里的代码,不能在我们的项目中重新定义那个bean(Bean重名的话项目启动会报错), 有什么办法实现呢?
解决方案
1.先在项目中配置一个相同类型的Bean,但是名字不能和jar包中已有的Bean重复。
2.再写一个实现了BeanDefinitionRegistryPostProcessor接口的Bean,在重写的方法里面自己把原来的bean定义替换成新的
本文来自博客园,作者:三线程序猿,转载请注明原文链接:https://www.cnblogs.com/shionsun/p/18007938