本文共 1239 字,大约阅读时间需要 4 分钟。
一句话概括一下,@Qualifier注解的用处:当一个接口有多个实现的时候,为了指名具体调用哪个类的实现。
下面配上简单的代码示例解释://定义一个接口public interface QualifierInterface { void testQualifierMethod();}
新建两个实现类,service()注解里面表名是one或者two
@Service("one")public class One implements QualifierInterface{ @Override public void testQualifierMethod() { System.out.println("this is One print:" + 1); }}
@Service("two")public class Two implements QualifierInterface{ @Override public void testQualifierMethod() { System.out.println("this is Two print:" + 2); }}
新建一个测试类
@SpringBootTestclass QualifierRun { @Qualifier("one") @Resource QualifierInterface qualifierInterface; @Test void contextLoads() { qualifierInterface.testQualifierMethod(); }}
注意:如果我这里不加入@Qualifier注解,运行是会报错的。
当我加入@Qualifier(“one”)输出this is Two print:12021-01-12 18:07:14.069 INFO 39816 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'Process finished with exit code 0
当我加入@Qualifier(“two”)输出
this is Two print:22021-01-12 18:07:14.069 INFO 39816 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'Process finished with exit code 0
转载地址:http://kykti.baihongyu.com/