@resource、@Autowired、@Service在一个接口多个实现类中的应用

  Spring在没有引入注解之前,传统的Spring做法是使用.xml文件来对bean进行注入,所有的内容都需要配置在.xml文件中,使配置和编程分离,却增加了可读性和复杂度。

       Spring注解将复杂的配置文件用简单@xxx代替,当出现一个接口多个实现类的时候,究竟是用的哪个实现类呢?

示例代码:

public interface DataDao{
}

 

@Service

public class ImgDataDao implements DataDao{

}

 

@Service

public class PayDataDao implements DataDao{

}

public class TestCase{
@Resource

private DataDao imgDataDao;

@Resource

private DataDao payDataDao;


}

1)利用@Service注解自动将类ImgDataDao和类PayDataDao注解为bean,id为imgDataDao和payDataDao,即类ImgDataDao和类PayDataDao的第一个字母小写的id。

2)@Resource按byName自动注入,@Autowired按byType自动注入;

3)@Resource可用@Autowired替换

4)当不想用默认的imgDataDao和payDataDao----id命名时,可用变为如下:

@Resource(name="imgDataDao")                             

private DataDao xx;

或者:

@Autowired

@Qualifier("imgDataDao")

private DataDao yy;
---------------------
作者:Judy-ya
来源:CSDN
原文:https://blog.csdn.net/jisuli1987/article/details/76036744

posted @ 2018-12-06 10:25  进击的石头--GO!  阅读(1280)  评论(0编辑  收藏  举报