戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
@Primary
spring应用手册(第二部分)
@Primary源码
package org.springframework.context.annotation;
@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD})
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@java.lang.annotation.Documented
public @interface Primary {
}
@Primary可以注解在由spring管理的类上方和@bean注解的方法上方。作用和bean标签的primary属性一致。
就是让其他bean在把当前bean作为注入对象时,如果存在多个和当前Bean同类型的bean,则优先选择当前bean。当然如果有多个同类型的bean并且多个bean上都注释了@Primary,则会抛出异常。
/**
* @author 戴着假发的程序员
*
* @description
*/
@Component
@Primary
public class ArticleDAO_other implements IArticleDAO {
@Override
public int save(String title) {
System.out.println("ArticleDAO_other-save->保存文章:"+title);
return 1;
}
}