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