這種用法是在看別人代碼的時候?qū)W到的录煤,覺得挺有意思的鳄厌,記錄一下。
1妈踊、首先新建一個接口
? ? ? ? public interface PlService { }
2了嚎、新建兩個這個接口的實現(xiàn)類
? ? ? ??@Service
? ? ? ? publicclassAServiceimplementsPlService{
? ? ? ? ? ? ? ? publicAService(){
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("----------------------- AService 實例化 ------------------------");
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? @Service
? ? ? ? publicclassBServiceimplementsPlService{
? ? ? ? ? ? ? ? publicBService(){
? ? ? ? ? ? ? ? ? ? ? ?System.out.println("------------------------------- BServive 實例化 ------------------------");
? ? ? ? ? ? ? ? }
? ? ? ? }
3、在另一個類中注入集合
? ??????@Component
? ? ? ? @Slf4j
? ? ? ? public class PlEurekaServerRunner implements ApplicationRunner {
? ? ? ? ? ? ? ? @Autowiredprivate List services;
? ? ? ? ? ? ? ? @Autowiredprivate Map serviceMap;
? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? public void run(ApplicationArguments args) throws Exception {
? ? ? ? ? ? ? ? ? ? ? ? for(PlServiceservice : services) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? log.info("++++++++++++++++++++ {}+++++++++++++++++++ ", service.getClass().getName());
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? for(Map.Entryentry : serviceMap.entrySet()) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? log.info("======================= {} : {} ====================", entry.getKey(), entry.getValue());
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?}
? ? ? ? ?}
4廊营、注入的結(jié)果
? ? ? ? 如果是List的話歪泳,會注入該接口的所有實現(xiàn)類;如果是Map的話露筒,key為類名呐伞,value為實現(xiàn)類。