JavaIOC框架篇之Spring Framework

歡迎查看Java開發之上帝之眼系列教程,若是您正在爲Java後端龐大的體系所困擾,若是您正在爲各類繁出不窮的技術和各類框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程但願您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各類後端技術在你心中模塊化;讓你在工做中能將Java各個技術瞭然於心;可以即插即用。本篇咱們一塊兒來了解SpringIOC相關知識以及其核心點

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

1.什麼是IOC?

IOC的意思就是控制反轉(Inversion of Control),將原POJO內部管理其餘對象的引用轉換爲IOC容器統一管理對象引用,在須要使用的時候從容器獲取Bean便可。java

 
將對象交給IOC容器統一管理,是爲了更好使用DI(Dependency Inject,依賴注入)進行POJO之間依賴關係的解耦。DI(Dependency Inject,依賴注入)即代碼裏對象之間的依賴關係轉移到容器中進行裝配,這樣能很靈活地經過面向接口進行編程。

2.瞭解SpringIOC定位

首先咱們能夠看到Spring4的龐大模塊中(這裏咱們不針對Spring模塊逐一介紹,將會在第四章:Spring專欄進行特別介紹),IOC功能位於Spring核心容器(Core Container模塊)中,也是Spring生態圈的全部模塊中的核心支撐。git

3.快速使用Spring IOC

Spring的XML配置文件以下,這裏使用XML配置文件的形式配置SpringBean(對於理解比較友好) 示例代碼下載github

<?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相關經常使用註解

自動掃描裝配Bean的相關注解spring

  • @Component      將java類標記成一個Spring Bean組件
  • @Service    將業務層實現類標記成一個Spring Bean組件
  • @Controller    將表現層類標記成一個Spring Bean組件
  • @Repository    將一個持久層實現類標記成一個Spring Bean組件
做用域相關注解
  • @scope    用來指定bean的做用域,組件默認是單例的做用域,不使用單例則聲明此註解

自動裝配Bean相關注解編程

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

 

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

 
本篇部分資料來源以下(排名不分前後)
 

勘誤&感謝

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

相關文章
相關標籤/搜索