1. 程式人生 > 其它 >1、Spring初識

1、Spring初識

1、Spring是一個輕量級Java開發框架,目的是為了解決企業級應用開發的業務邏輯層和其他各層的耦合問題。它是一個分層的 JavaSE/JavaEE full-stack(一站式)輕量級開源框架,為開發Java應用程式提供全面的基礎架構支援。Spring負責基礎架構,因此Java開發者可以專注於應用程式的開發。 Spring最根本的使命是解決企業級應用開發的複雜性,即簡化Java開發。 Spring可以做很多事情,它為企業級開發提供給了豐富的功能,但是這些功能的底層都依賴於它的兩個核心特性,也就是依賴注入(dependency injection,DI)面向切面程式設計(aspect-oriented programming, AOP)

2、核心內容

  spring是一個輕量級的開源框架。

  spring為了解決企業級應用開發的業務邏輯層和其他各層的耦合問題。spring是一個IOC和AOP的容器框架。

    IOC:控制反轉

    AOP:面向切面程式設計

    容器:包含並管理應用物件的生命週期

3、使用spring的優點

  3.1、Spring通過DI、AOP和消除樣板式程式碼來簡化企業級Java開發

  3.2、Spring框架之外還存在一個構建在核心框架之上的龐大生態圈,它 將Spring擴充套件到不同的領域,如Web服務、REST、移動開發以及NoSQL

  3.3、低侵入式設計,程式碼的汙染極低

  3.4、獨立於各種應用伺服器,基於Spring框架的應用,可以真正實現 Write Once,Run Anywhere的承諾

  3.5、Spring的IoC容器降低了業務物件替換的複雜性,提高了元件之間的解耦

  3.6、Spring的AOP支援允許將一些通用任務如安全、事務、日誌等進行 集中式處理,從而提供了更好的複用

  3.7、Spring的ORM和DAO提供了與第三方持久層框架的的良好整合, 並簡化了底層的資料庫訪問

  3.8、Spring的高度開放性,並不強制應用完全依賴於Spring,開發者可 自由選用Spring框架的部分或全部

  3.9、任何一個語言或者任何一個框架想要立於不敗之地,那麼很重要的 就是它的生態。

4、spring的模組劃分圖

  Data Access/Integration:資料的獲取/整合模組,包括了JDBC,ORM,OXM,JMS和事務模組

   Web:提供面向web整合特性

5、IOC(Inversion of Control):控制反轉

  5.1、基本概念

  IOC是一種設計思想,在Java開發中,將你設計好的物件交給容器控制,而不是顯示地用代 碼進行物件的建立。(建立物件交給spring來處理,不用 new Object()等等來操作了)

  把建立和查詢依賴物件的控制權交給 IoC 容器,由 IoC 容器進行注入、組合物件之間的關 系。這樣物件與物件之間是鬆耦合、功能可複用(減少物件的建立和記憶體消耗),使得程式 的整個體系結構可維護性、靈活性、擴充套件性變高。 所謂IOC ,就簡短一句話:物件由 spring來建立、管理,裝配!

  5.2、為什麼使用IOC?

    5.2.1介面分離原則ISP(the Interface Segregation Principle ISP)

    模組間要通過抽象介面隔離開,而不是通過具體的類強耦合起來

    5.2.2 依賴倒置原則DIP(the Dependency Inversion Principle DIP)

    具體實現依賴抽象,下層依賴上層。 依賴倒置原則使滑鼠、鍵盤和電腦成為獨立的的互不相干的物件,當電腦(上 層)沒有滑鼠可以正常啟動但是滑鼠(下層)沒有電腦則一無是處 ,控制權就被反轉           了(IOC)。 所以滑鼠需要依賴USB(DI)才能使用。

    之前——正轉: 主機板­­­焊接­­­>滑鼠 電腦沒有滑鼠則無法啟動

    現在——反轉: 電腦<­­­依賴­­­滑鼠 引入DI可以實現IOC

    IOC是DIP的設計原理,DI是IOC的具體實現

  5.3 如何使用 IOC?

    5.3.1匯入jar包---配置xml

      a、匯入相關的jar包

      

      b、配置XML檔案

<?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.xsd">

    <bean id="user" class="com.zhl.entity.User"></bean>
</beans>

     c、編寫測試類

public class IocTest {
    @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-ioc.xml");
        User user = context.getBean(User.class);
    }
}

    5.3.2maven+註解+xml

      a、配置maven依賴

      

      b. 去pom.xml