发布网友 发布时间:2023-03-25 09:41
共1个回答
热心网友 时间:2023-10-18 21:41
在声明bean的时候,通过将其中一个可选的bean设置为首选
描述:在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种。这种情况下 @Primary 的作用就出来了。下面是个简单的使用例子。
当一个接口有多个实现,且通过@Autowired注入属性,由于@Autowired是通过byType形式,用来给指定的字段或方法注入所需的外部资源。Spring无法确定具体注入的类(有多个实现,不知道选哪个),启动会报错并提示:
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed。
当给指定的组件添加@Primary是,默认会注入@Primary配置的组件。
访问结果如下: