享学笔记:Spring之@Primary注解使用

1.场景

在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary 的作用就出来了。下面是个简单的使用例子。

2.示例

dao层代码:

@Repository
public class DaoTest {
    public int age = 10;
    DaoTest(int age){
        this.age= age;
    }
    DaoTest(){

    }
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

controller代码:

@Controller
public class Controllertest {

    @Autowired
    private DaoTest daoTest;

    @Override
    public String toString() {
        return daoTest.age+"";
    }

}

 配置文件

@Configuration
@ComponentScan("com.jxhx.spring.bean")
public class BeanConfig {

    @Bean
    public DaoTest daoTest(){
        return new DaoTest(1);
    }
    @Bean
    @Primary
    public DaoTest daoTest2(){
        return new DaoTest(2);
    }
}

测试类

@Repository
public class DaoTest {
    public int age = 10;
    DaoTest(int age){
        this.age= age;
    }
    DaoTest(){

    }
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

当@Primary放在daoTest2()方法时输出

2

当@Primary放在daoTest()方法时输出

1


版权声明:本文为qq_34351177原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。