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