Spingboot替换掉jar包里面的@Bean

问题

如下图,我们需要替换掉JsoncCfg配置类里面的YCloudObjectMapper这个Bean。

这个Bean是在依赖的第三方jar包中的,因为用了@Bean而不是像@Component这种组件扫描添加的,所以不能使用@ComponentScan注解进行排除。
现在不能修改jar包里的代码,不能在我们的项目中重新定义那个bean(Bean重名的话项目启动会报错), 有什么办法实现呢?

解决方案

1.先在项目中配置一个相同类型的Bean,但是名字不能和jar包中已有的Bean重复。

2.再写一个实现了BeanDefinitionRegistryPostProcessor接口的Bean,在重写的方法里面自己把原来的bean定义替换成新的

posted @ 2024-02-05 14:31  三线程序猿  阅读(356)  评论(0编辑  收藏  举报
Live2D