程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 01_基礎知識,01基礎知識

01_基礎知識,01基礎知識

編輯:JAVA綜合教程

01_基礎知識,01基礎知識


1.Spring體系結構?

主要分為5大模塊:

(1)數據訪問和集成:JDBC、ORM、OXM、JMS、事務管理。

  Spring站在DAO的抽象層面,建立了一套面向DAO層統一的異常體系,同時將各種訪問數據的檢查異常型異常轉換為非檢查異常,為整合各種之久層框架提供給了基礎。

  其次,Spring通過模板化技術對各種數據庫訪問技術進行了薄層的封裝,將模式化的代碼隱藏起來,簡化了數據庫訪問的代碼。

  這樣,Spring就建立了和數據形式訪問技術無關的統一的DAO層,借助AOP技術,Spring提供了聲明式事務的功能。

(2)Web及遠程操作:MVC、Web Service、Portlet

  該模塊建立在Application Context 模塊之上,提供了Web應用的各種工具類。如通過Listener或Servlet初始化Spring容器,將Spring容器注冊到Web容器中。

  其次,該模塊還提供了多種面向Web的功能,例如透明化文件上傳、Velocity、FreeMarker、XSLT的支持。

  此外,SPring還可以整合Struts2、WebWork等MVC框架。  

(3)測試框架

(4)AOP:Spring AOP、Aspects

  Aop是進行橫切邏輯編程的思想,它開拓了思考問題的思路。

(5)IoC:Bean、Context、表達式語句

  Spring核心模塊實現了IoC的功能,它將類和類之間的依賴從代碼中脫離出來,用配置的方法進行依賴關系的描述,由IoC容器負責依賴之間的創建、拼接、管理、獲取等工作。

  BeanFactory接口是Spring框架的核心接口,它實現了容器許多核心的功能。

  Context模塊構建與核心模塊之上,擴展了BeanFactory的功能,添加了il8n國際化、Bean生命周期的控制、框架事件體系、資源加載透明化等多項功能。該模塊還提供了許多企業級服務的支持,例如郵件服務、任務調度、JNDI定位、EJB集成、遠程訪問等。ApplicationContext是Context的核心接口。

  表達式語言是統一表達式語言(unified EL)的一個擴展,該表達式語言用於查詢和管理運行期的對象,支持設置和獲取對象屬性,調用對象方法、操作數組、集合等。還提供了邏輯表達式運算、變量定義等功能,使用它可以方便的通過表達式串和SpringIoC容器的交互。

 

2.理解IoC(Inversion of Control,控制反轉)

  了解DI(Dependency Injection) :依賴注入,不管是控制層的Action對象,業務層的Service對象,還是持久層的DAO對象,都可以在Spring的管理下有機地協調、運行。Spring將各層的對象以松耦合的方式組織在一起,Action對象無需關心Service對象的具體實現,各層對象的調用完全面向接口。當系統需要重構時,代碼的改寫量將大大減少。

  之所以被稱為依賴注入,因為被調用者實例的工作通常由Spring容器完成,然後注入調用者。程序運行過程中,如果需要弟阿勇一個對象協助時,無需在代碼中創建被調用者,而是依賴外部的注入。Spring的依賴注入對調用者和被調用者幾乎沒有任何要求,完全支持POJO之間依賴關系的管理。

  DI(依賴注入)和Ioc(控制反轉)是同一個概念。

  IoC:當某個角色(一個java實例,調用者)需要另一個角色(另一個java實例,被調用者)的協助時,在傳統的程序設計過程中,一般由調用者來創建被調用者的實例。在Spring中,創建被調用者的工作不再是由使用者完成,因此成為控制反轉。也就是說,所有的組件都是被動的,所有的組件和調用都是有容器負責,並由容器負責管理。

 

3.Spring注入

Spring注入是在啟動Spring容器加載Bean的時候,完成對變量的賦值行為。

常用的兩種注入方式:設置注入 和 構造注入。

 

4.Bean的作用域

singleton:單例,指一個Bean容器中值存在一份。

prototype:每次請求(每次使用)都會創建新的實例,destroy方式不生效。

request:每次http請求創建一個實例且僅在當前request內有效

session:同上,每次http請求的創建,當前session內有效

global session:基於portlet的文本中有效(portlet定義了global session),如果是在web中,同session。

 

5.Bean的生命周期

(1).定義

(2).初始化

  實現org-springframework.beans.factory.InitializingBean接口,覆蓋afterPropertySet方法

  配置init-method

(3).使用

(4).銷毀

  實現org-springframework.beans.factory.DisableBean接口,覆蓋destroy方法。

  配置destory-method

 

6.Spring中Bean的生命周期

(1)Singleton作用域

  當一個Bean的作用域設置為singleton,那麼Spring IoC容器中只會存在一個共享的Bean實例,並且所有對Bean的請求,只要id與該Bean定義相匹配,則會返回Bean的同一實例。當把一個Bean定義設置為singleton作用域時,Spring IoC容器只會創建該Bean的唯一實例。這個單例會被存儲到單例緩存中,並且所有針對該Bean的後續請求和引用都將返回被花村的對象實例。

(2).prototype作用域

  prototype作用域部署的Bean,每一次請求(將注入到另一個Bean中,或者以程序的方式調用容器的getBean()方法)都會產生一個新的Bean實例。相當於一個new操作。對於prototype作用域的Bean,有一點非常重要,那就是Spring不能對一個prototype Bean的整個生命周期負責,容器在初始化、配置或者是裝配完一個prototype實例後,將它嫁給客戶,隨後就不管了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved