spring項目在啓動時,spring框架會根據名稱自動搜索實現類. 這在平常開發中仍是頗有用的。spring
下面舉兩個例子。app
1. 先寫一個接口(或者抽象類)框架
public interface IPersonService { void say(); }
2. 弄兩個實現類,並註冊到Ioc中ide
@Component public class ManService implements IPersonService { @Override public void say() { System.out.println("我是男人。。。。"); } }
@Component public class WomanService implements IPersonService { @Override public void say() { System.out.println("我是女人。。。。"); } }
3. 再寫一個測試的Controller測試
@RestController public class PersonController { @Autowired private Map<String, IPersonService> personServices; @Autowired private List<IPersonService> list; @GetMapping("/getPersonServices") public Object getPersonServices(String key) { IPersonService manService = personServices.get(key); manService.say(); return manService.getClass(); } @GetMapping("/getList") public void getList() {
list.forEach(System.out::println);
} }
4. 啓動項目跑一把spa
getList請求後臺打印code