Spring框架初始

                                        Spring--第一天

Spring框架簡介

1.認識框架

 spring框架都包含在spring-framework-4.1.6.RELEASE-dist.jar的包中,對它進行解壓得到三個文檔:

  1.   docs文檔(spring框架的幫助文檔,包括api和官方文檔說明)   
  2. libs文檔(各種jar包,java框架的主要組成)
  3. schema文檔 (是各種.xsd文件,.xsd文件是DTD(xml的語法檢查器)的升級版,它主要用在spring框架的配置文件(applicationcontext文件)中)             

          3.1 xml語法檢查器:用來快速編程,給你提示補全等

          3.2擴展性:每次引入一個.xsd文件,就引入了一個xml命名空間(xmlns),比DTD更簡潔一點。

從docs的官方文檔說明中知道:

spring框架由以下幾個組成,

1.最底層的test,是spring提供的測試用的

2.然後Core  Comtainer核心容器,指spring框架的最基本的組成,也就是我們如果想用spring框架必須要引入Beans,Core ,Cntext,SpEl.這四個jar包。

    Beans:對象容器。

    Core:spring核心

    Context:上下文對象

    SpEl:spring的表達式

上面兩層是它的其他功能,都對應的相應的jar包,如使用AOP技術需要先引入spring-aop-4.1.6.RELEASE.jar包

 2.Spring框架的功能和作用

   spring的最主要功能包括:

  1. IOC/DI:控制反轉/依賴注入(總結:就是用一個容器,來管理我們需要實例化的所有對象)
  2. AOP:面向切面編程(爲了解決現在的縱向編程的問題,引入了橫向編程,在一個方法(切點)之前需要實現的功能(前置通知),在方法之後需要實現的功能(後置通知),所以它簡化了主要業務的繁瑣程度,使業務代碼需要執行的功能更加轉一,它的底層實現是代理設計模式,而且是動態代理,因爲代理模式(明星-經紀人)恰好也是能使明星更加專心演出,無需思考它的生活方面,行程方面的問題)
  3. 聲明式事務:它是基於通知的,它改變了aop的一些結構(通知--->切點)變爲了·(通知——>事務——>切點),這裏的事務通常是數據庫的回滾,提交。而數據庫的數據插入,成功就保存,失敗就回滾,剛好符合aop的橫向編程,所以spring框架幫我們寫好了事務處理模塊,我們只需要聲明在哪個方法上調用。

3.spring框架的搭建

         1.導入jar包(最少5個),除了上面提到的四個核心包之外,還要導入一個commons-logging-1.1.3.jar日誌包

         2.src 下新建 applicationContext.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">
  <!-- id表示獲取到對象標識
    	 class 創建哪個類的對象
     -->
    <bean id="peo" class="com.pojo.People"/>
</beans>

         3.編寫測試方法

package com.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.pojo.People;


public class Test {
	public static void main(String[] args) {
//		People peo = new People();
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		People people = ac.getBean("peo",People.class);
		System.out.println(people);
		
//		String[] names = ac.getBeanDefinitionNames();
//		for (String string : names) {
//			System.out.println(string);
//		}
	}
}

4.IOC/DI 

看了各種文檔,帖子,然而越看越抽象,個人覺得,就是在類與類之間加了一個容器,這個容器來創建和管理類的對象。通過這個容器實現瞭解耦。解程序員和類之間的耦。沒有這個容器時,一個類引用另一個類的對象,需要通過new來實例化另一個類的對象。有了這個容器之後,我們通過配置文件applicationcontext文件來在容器中創建對象,一個類引用另一個類的對象時,我們不需要實例化對象,只是從容器中得到對象。

5.spring中創建對象的三種方式

        1.通過構造方法創建

              無參構造

             有參構造

        2.實例工廠

            

        3.靜態工廠

5. Bean屬性賦值

      1.通過構造方法設值

      2.設值注入(通過類中屬性的set方法)

6.IOC和DI

    IOC和DI是一樣的。

    IOC:控制反轉,是指把原來程序員寫代碼創建和管理對象的任務交給了Bean容器

    DI:依賴注入,是指當一個類中需要另一個類的對象時,把另一個類的對象賦值給A的過程

          

 

 

發佈了15 篇原創文章 · 獲贊 8 · 訪問量 5036
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章