🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
转载请注明出处:
在项目开发过程中,往往是直接应用很多jar包中依赖且声明好的Bean,拿来即用,但很多场景也需要对这些原生的Bean 进行自定义,定制化封装,这样在项目使用的过程中,可以使用自定义的Bean,而不是原生的Bean。下面总结了几种定制化原生Bean 的几种方式:
1. 在项目中创建同包同类名的类
这种方式使用较少,因为项目中的包路径根据开发规范是根据业务名自定义的包路径
2.使用 @Primary 注解,或 @Qualifier 注解,定义Bean 的优先级或使用时,指定Bean
- @Primary 优先考虑,优先考虑被注解的对象注入
- @Qualifier 名字声明,声明后对名字进行使用
当一个类有多个Bean的实例时,可以在 Bean 的实现类中 使用 @Primary 注解声明Bean 的优先级,在使用过程中,spring则默认加载该类实例化出的Bean。而 @Qualifiler 注解先声明后使用,相当于多个实现起多个不同的名字,注入时候告诉我你要注入哪个;
@Primary 在源码中使用的示例: spring-cloud-starter-gateway 3.1.1 版本中的 GatewayAutoConfiguratio