扫码阅读
手机扫码阅读

@ConditionalOnMissingBean 如何实现覆盖第三方组件中的 Bean

271 2024-07-21

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:@ConditionalOnMissingBean 如何实现覆盖第三方组件中的 Bean
文章来源:
BUG弄潮儿
扫码关注公众号
文章摘要

摘要: 自定义一个简单的Spring Boot组件

本文主要介绍了如何创建和配置一个自定义的Spring Boot组件olive-starter,并展示了如何在另一个项目olive-gateway中使用这个组件。

创建olive-starter项目

文章首先指导读者创建一个名为olive-starter的Spring Boot项目,提供了相关的pom.xml配置,特别指出在该文件中应避免引入spring-boot的插件,以确保其他工程可以通过maven install命令引入该组件。

定义接口和实现类

接下来,定义了一个加载路由的接口RouterService以及一个默认的实现类DefaultRouterServiceImpl。同时,提供了路由实体类RouterDO的代码和配置默认路由加载Bean的方法RouterConfig。

配置spring.factories

为了使自定义组件具备自动配置功能,文章指导创建META-INF文件夹和spring.factories文件,配置内容指向RouterConfig类。

创建olive-gateway项目并引用olive-starter

文章进一步展示了如何创建olive-gateway项目,并在其pom.xml文件中添加对olive-starter组件的依赖。然后创建了Spring Boot启动类GwApplication,并在main方法中获取并调用RouterService的getRouters方法。

自定义路由加载类

为了演示如何覆盖默认的路由加载类,文中引导读者创建了一个新的路由服务实现类CustomRouterServiceImpl,并通过再次启动olive-gateway项目来观察日志,确认CustomRouterServiceImpl已经取代了DefaultRouterServiceImpl。

文章结尾提示读者点赞和关注,表达了对读者的感谢。

想要了解更多内容?

查看原文:@ConditionalOnMissingBean 如何实现覆盖第三方组件中的 Bean
文章来源:
BUG弄潮儿
扫码关注公众号