1. 程式人生 > >JavaIOC框架篇之Spring Framework

JavaIOC框架篇之Spring Framework

rap rep ofo path 正在 xmlns encoding 相關 ron

歡迎查看Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麽本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(了解)Java體系。使Java的各種後端技術在你心中模塊化;讓你在工作中能將Java各個技術了然於心;能夠即插即用。本篇我們一起來了解SpringIOC相關知識以及其核心點

目前Java體系常見的IOC框架有Google Guice,PicoContainer,Dagger,Spring Framework,本篇來進行講解Spring Framework的IOC(Spring IOC) 本篇示例代碼下載

1.什麽是IOC?

IOC的意思就是控制反轉(Inversion of Control),將原POJO內部管理其他對象的引用轉換為IOC容器統一管理對象引用,在需要使用的時候從容器獲取Bean即可。 將對象交給IOC容器統一管理,是為了更好使用DI(Dependency Inject,依賴註入)進行POJO之間依賴關系的解耦。DI(Dependency Inject,依賴註入)即代碼裏對象之間的依賴關系轉移到容器中進行裝配,這樣能很靈活地通過面向接口進行編程。

2.了解SpringIOC定位

技術分享圖片

首先我們可以看到Spring4的龐大模塊中(這裏我們不針對Spring模塊逐一介紹,將會在第四章:Spring專欄進行特別介紹),IOC功能位於Spring核心容器(Core Container模塊)中,也是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的作用域,組件默認是單例的作用域,不使用單例則聲明此註解 singleton---單例 只創建一個對象。 prototype---原型 想創建多少個就創建多少了。 request---針對Web項目,不同的請求創建單獨的Bean對象,同一個請求共享一個Bean。 session---針對Web項目,不同的會話創建單獨的Bean對象,同一個會話共享一個Bean。

自動裝配Bean相關註解

@Autowired 通過類型匹配,通過名稱則需要Spring的@Qualifier註解配合
@Resource 根據Bean的名稱去匹配,獲取不到再根據類型

Java開發之上帝之眼系列教程其他文章

  • Java開發之上帝之眼系列教程前言和章節目錄匯總
本篇部分資料來源如下(排名不分先後) https://www.cnblogs.com/hellokitty1/p/5074743.html

勘誤&感謝

  本系列文章資料來源很多出自於互聯網和在下本身的見解,受限於個人技術能力水平和其他相關知識的限制,相關見解錯誤或者資料引用錯誤請各位幫助留言校正!引用資料多來自於互聯網,在下在引用前會遵循各位前輩或者博主的引用說明表示感謝,但互聯網資料多是轉發再轉發或存在遺漏請原作者內信聯系指正。

JavaIOC框架篇之Spring Framework