使用@Named注解(一个接口多个实现,匹配引入想要的实现类)

来源:互联网 发布:淘宝评价怎么添加视频 编辑:程序博客网 时间:2024/06/05 11:58

@Inject注解

@Named注解


若一个接口DemoInterface,有多个(最少2个)实现类(A_Demo_Impl,B_Demo_Impl.... ),
在引用类中使用@Inject注解时,要在类级别上使用相关的限定符进行注解,同时在注入DemoInterface的类中要有一个字段使用相同的限定符进行注解。
如下:
@Inject  @A_Demo_Impl
private DemoInterface demoService;



使用@Named注解(解决匹配引入一个接口多个实现):
/*** @ClassName:DemoService* @Description:接口* @date:2017年7月12日* 修改备注:*/public interface DemoService{public void demoTest();}/*** @ClassName:DemoService_A_impl* @Description:实现类A* @date:2017年7月12日* 修改备注:*/@Named("demoService_A_impl")public class DemoService_A_impl implements DemoService{@Overridepublic void demoTest(){//here codes}}/*** @ClassName:DemoService_B_impl* @Description:实现类B* @date:2017年7月12日* 修改备注:*/@Named("demoService_B_impl")public class DemoService_B_impl implements DemoService{@Overridepublic void demoTest(){//codes here----codes here}}/*** @ClassName:UseDemo* @Description:使用类,注入接口类* @date:2017年7月12日* 修改备注:*/public class UseDemo{@Inject@Named("demoService_B_impl")   //指定注入实现类Bprivate DemoService demoService;public void doSomething(){demoService.demoTest();    //在此处调用的是实现类B的实现方法}}




阅读全文
0 0