依賴注入(DI)和控制翻轉(zhuǎn)(IOC)
????? 依賴注入在書上說的是容器負(fù)責(zé)創(chuàng)建對(duì)象和維護(hù)對(duì)象間的依賴關(guān)系锭吨,而不是通過對(duì)象本身負(fù)責(zé)自己的創(chuàng)建和解決自己的依賴。DI和IOC在spring環(huán)境下是同等概念偎窘。
? ? ? 書上說的每個(gè)字都對(duì),也認(rèn)識(shí)笤成,但是連起來讀著對(duì)初學(xué)者就相對(duì)不太友好了,可以說是完全看不懂眷茁。經(jīng)過我自己的學(xué)習(xí)炕泳,似乎明白了一點(diǎn)。之前new對(duì)象和對(duì)對(duì)象進(jìn)行修改或者調(diào)用時(shí)上祈,都是由程序員本身去一對(duì)一創(chuàng)建培遵。所謂的控制翻轉(zhuǎn),就是把new對(duì)象的權(quán)利轉(zhuǎn)交給了spring框架登刺,讓spring框架來幫助管理籽腕。可以說是移交了控制權(quán)纸俭,所以控制翻轉(zhuǎn)了皇耗。
?????? 聲明Bean的注解:
@Component組件 ,沒有明確的角色
@Service 在service層使用(即業(yè)務(wù)邏輯層)
@Repository 在DAO層使用(即數(shù)據(jù)訪問層揍很,即對(duì)數(shù)據(jù)庫進(jìn)行操作的類)
@Control 在MVC——》Spring MVC層使用(即表現(xiàn)層)
??? 注入Bean的注解:
@Autowired 自動(dòng)注入 默認(rèn)按類型裝配(by type)
@Resource默認(rèn)按名稱裝配郎楼,當(dāng)找不到與名稱匹配的bean才會(huì)按類型裝配万伤。
??? Java配置:
java配置可以完全提到xml配置
@Configuration 聲明當(dāng)前類是配置類,相當(dāng)于XML文件呜袁。
@Bean 注解在方法上敌买,聲明當(dāng)前方法的返回值為Bean。
例如
@Configuration
public class JavaConfig{
@Bean
public UseFunctionService? useFunctionService(FunctionService functionService){
? ? UseFunctionService useFunctionService = new UseFunctionService();
??? useFunctionService.setFunctionService(functionService);
??? return useFunctionService;
??? }
}