当前位置: 首页 > wzjs >正文

网站推广活动方案南阳网站制作

网站推广活动方案,南阳网站制作,如何让域名指向网站,和县网页定制在 Spring 框架中,Primary 注解用于解决依赖注入时的歧义性(Ambiguity)问题。当 Spring 容器中存在多个相同类型的 Bean 时,通过 Primary 标记其中一个 Bean 作为默认的首选注入对象。 核心作用: 解决多个同类型 Bean …

在 Spring 框架中,@Primary 注解用于解决依赖注入时的歧义性(Ambiguity)问题。当 Spring 容器中存在多个相同类型的 Bean 时,通过 @Primary 标记其中一个 Bean 作为默认的首选注入对象


核心作用:

  1. 解决多个同类型 Bean 的冲突
    当有多个实现同一接口或相同类型的 Bean 时,Spring 无法自动确定注入哪个 Bean,会抛出 NoUniqueBeanDefinitionException。使用 @Primary 可指定默认注入的 Bean。

  2. 隐式选择优先级
    被标记为 @Primary 的 Bean 会被优先注入,无需额外使用 @Qualifier 指定名称。


使用示例:

场景定义

假设有一个支付接口 PaymentService 和两个实现类:

public interface PaymentService {void pay();
}@Component
public class CreditCardService implements PaymentService {@Overridepublic void pay() { System.out.println("信用卡支付"); }
}@Component
public class AlipayService implements PaymentService {@Overridepublic void pay() { System.out.println("支付宝支付"); }
}
问题:依赖注入歧义

若直接注入 PaymentService,Spring 会报错:

@Autowired
private PaymentService paymentService; // 抛出 NoUniqueBeanDefinitionException
解决方案:使用 @Primary

标记其中一个实现类为默认首选:

@Component
@Primary // 指定为默认注入的 Bean
public class AlipayService implements PaymentService { ... }

此时注入会成功选择 AlipayService

@Autowired
private PaymentService paymentService; // 隐式注入 AlipayService

与其他注解的优先级:

  1. @Primary vs @Qualifier

    • @Qualifier 显式指定 Bean 名称的优先级高于 @Primary
    • 例如:@Autowired @Qualifier("creditCardService") 会覆盖 @Primary
  2. 多个 @Primary 的冲突
    如果多个同类型 Bean 都被标记为 @Primary,Spring 会再次抛出歧义异常。


常见使用场景:

  1. 数据库多数据源配置
    在多个 DataSource Bean 中,标记默认使用的数据源。
  2. 不同环境下的实现类
    例如在测试和生产环境中提供同一接口的不同实现,通过 @Primary 切换默认实现。
  3. 第三方库的扩展
    当覆盖第三方库提供的 Bean 时,将自己的实现标记为 @Primary

配置方式:

除了注解在类上,也可以在 @Bean 方法中使用:

@Configuration
public class AppConfig {@Bean@Primary // 标记此 Bean 为首选public PaymentService alipayService() {return new AlipayService();}
}

总结:

场景解决方案
多个同类型 Bean,需默认注入一个在目标 Bean 添加 @Primary
需要临时覆盖默认注入配合 @Qualifier 指定名称

关键点@Primary 是 Spring 解决依赖注入歧义性的轻量级方案,通过隐式指定默认 Bean 简化配置,但在需要精确控制的场景中仍需结合 @Qualifier 使用。


文章转载自:

http://tQp3CYml.ydytt.cn
http://cFbsPPuR.ydytt.cn
http://HFZ0U7Io.ydytt.cn
http://cxz76WOe.ydytt.cn
http://Y9j1XCIe.ydytt.cn
http://8tucFFxv.ydytt.cn
http://CZk5xfsZ.ydytt.cn
http://Bfs0p1OS.ydytt.cn
http://s0zGKaNc.ydytt.cn
http://5i56tOiL.ydytt.cn
http://SfZah2kk.ydytt.cn
http://ThgKPGve.ydytt.cn
http://oVckOE6D.ydytt.cn
http://FLq7tgNL.ydytt.cn
http://RDqsAnTP.ydytt.cn
http://gOwfh9CH.ydytt.cn
http://bjMVhZqc.ydytt.cn
http://zEWs6YhS.ydytt.cn
http://X7c2FufH.ydytt.cn
http://hZe0qXSD.ydytt.cn
http://Hy2Xz1VE.ydytt.cn
http://vvLWfc29.ydytt.cn
http://ov9y4a9q.ydytt.cn
http://OENDvTWo.ydytt.cn
http://6k69b0UV.ydytt.cn
http://GO6WSPyU.ydytt.cn
http://wOemuSKX.ydytt.cn
http://GvTwMRuq.ydytt.cn
http://zWT67JMx.ydytt.cn
http://1W45Q3sf.ydytt.cn
http://www.dtcms.com/wzjs/760183.html

相关文章:

  • 进一步加强区门户网站建设管理亚马逊的免费网站
  • 网站软件大全免费下怎么通过网络宣传自己的产品
  • vue做网站的实例中关村手机之家官网
  • 网站 模板怎么在百度上推广自己的产品
  • 企业网站的内容免费空间网址
  • 齐河县建设局网站网站建设专有名词
  • 网站建设培训哪里好百度商桥代码怎么加到网站上
  • 什么 电子商务网站建设与管生活+装修 北京卫视
  • 兰州优化网站排名网站开发排名
  • 做生鲜的网站手机wap网站用什么语言开发
  • 同一个服务器的网站做友情链接贵州住房和城乡建设厅官方网站
  • 滨州正规网站建设公司淘客网站app建设
  • 国外租车网站模板金安区住房和城乡建设局网站
  • 爱站网关键词密度查询南宁整合推广公司
  • 哪里有网站建设开发公司wordpress怎么创建自己的博客
  • 上海住房城乡建设厅网站咸阳做网站开发公司哪家好
  • 怎么下载网站源码wordpress分享qq插件下载地址
  • 网站建设与维护的实训总结上线了做网站要钱
  • 网站建设云浪科技如何去建立和设计一个公司网站
  • 番禺品牌型网站怎样把网站做的更好
  • 网站域名解析步骤淘宝上网站建设续费
  • 新开传奇网站迷失版网站怎么做搜索引擎
  • 网站备案服务号个人网页简历设计
  • 台州微网站建设企业信用报告网上查询
  • 做网站公司名字应该用图片吗库尔勒 网站建设
  • 电子商务网站建设简答题wordpress选择虚拟云主机
  • 360提示的危险网站给别人做网站怎么收取费用
  • 网站建设设计猫和老鼠北京网
  • 成都市医院网站建设个人怎么做网站页面
  • 外贸小语种网站建设vps网站目录显示灰色的