@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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM