1. 程式人生 > >@resource、@Autowired、@Service在一個接口多個實現類中的應用

@resource、@Autowired、@Service在一個接口多個實現類中的應用

imp pri tail 簡單 編程 接口 qualifier 示例 .net

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

@resource、@Autowired、@Service在一個接口多個實現類中的應用