第三章 : JavaIOC框架篇之Spring Framework
版權宣告:本文為博主原創文章,轉載需註明出處 https://blog.csdn.net/ldz1997106/article/details/82872604
歡迎檢視 ofollow,noindex" target="_blank">Java開發之上帝之眼系列教程 ,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模組化;讓你在工作中能將Java各個技術瞭然於心;能夠即插即用。本篇我們一起來了解SpringIOC/">IOC相關知識以及其核心點。
目前Java體系常見的IOC框架有Google Guice,PicoContainer,Dagger,Spring Framework,本篇來進行講解Spring Framework的IOC(Spring IOC) 本篇示例程式碼下載
1.什麼是IOC?
IOC的意思就是控制反轉(Inversion ofControl),將原POJO內部管理其他物件的引用轉換為IOC容器統一管理物件引用,在需要使用的時候從容器獲取Bean即可。
將物件交給IOC容器統一管理,是為了更好使用DI(DependencyInject,依賴注入)進行POJO之間依賴關係的解耦。DI(Dependency Inject,依賴注入)即程式碼裡物件之間的依賴關係轉移到容器中進行裝配,這樣能很靈活地通過面向介面進行程式設計。
2.瞭解SpringIOC定位
首先我們可以看到Spring4的龐大模組中(這裡我們不針對Spring模組逐一介紹,將會在第四章:Spring專欄進行特別介紹),IOC功能位於Spring核心容器(CoreContainer模組)中,也是Spring生態圈的所有模組中的核心支撐。
3.快速使用Spring IOC
Spring的XML配置檔案如下,這裡使用XML配置檔案的形式配置SpringBean(對於理解比較友好) 示例程式碼下載
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean class="com.leanspringioc.AdminUser" id="adminUser"/> <bean class="com.leanspringioc.VipUser" id="vipUser"/> <bean class="com.leanspringioc.TestIOC" id="testIOC"> <property name="iUser" ref="vipUser"/> </bean> </beans>
/** * 在applicationContext.xml檔案中向testIOCBean中注入vipUser和adminUser進行測試 * * @param args */ public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); TestIOC testIOC = (TestIOC) context.getBean("testIOC"); testIOC.say(); }
4.Spring IOC相關常用註解
Spring IOC早以相容JSP-250(Dependency Injection for Java),後又逐步相容了JSP-330規範。
自動掃描裝配Bean的相關注解
- @Component 將java類標記成一個Spring Bean元件
- @Service 將業務層實現類標記成一個Spring Bean元件
- @Controller 將表現層類標記成一個Spring Bean元件
- @Repository 將一個持久層實現類標記成一個Spring Bean元件
作用域相關注解
- @scope 用來指定bean的作用域,元件預設是單例的作用域,不使用單例則宣告此註解
自動裝配Bean相關注解
- @Autowired 通過型別匹配,通過名稱則需要Spring的@Qualifier註解配合
- @Resource 根據Bean的名稱去匹配,獲取不到再根據型別
Java開發之上帝之眼系列教程其他文章
本篇部分資料來源如下(排名不分先後)
https://www.cnblogs.com/hellokitty1/p/5074743.html勘誤&感謝
本系列文章資料來源很多出自於網際網路和在下本身的見解,受限於個人技術能力水平和其他相關知識的限制,相關見解錯誤或者資料引用錯誤請各位幫助留言校正!引用資料多來自於網際網路,在下在引用前會遵循各位前輩或者博主的引用說明表示感謝,但網際網路資料多是轉發再轉發或存在遺漏請原作者內信聯絡指正。