1. 程式人生 > 其它 >Oracle技術支援是如何分析資料庫效能問題的

Oracle技術支援是如何分析資料庫效能問題的

Spring

  1. Spring概述

    是一個開源框架,是為了解決企業應用程式開發複雜性而建立的
    Spring是潛在地一站式解決方案,定位於與典型應用相關的大部分基礎結構
    Spring致力於提供一種方法管理你的業務物件
    Spring是全面的和模組化的
    它的設計從底部幫助你編寫易於測試的程式碼

  2. Spring特徵

    輕量
    從大小與開銷兩方面而言Spring都是輕量的
    容器
    Spring包含並管理應用物件的配置和生命週期,在這個意義上它是一種容器
    控制反轉
    不是物件從容器中查詢依賴,而是容器在物件初始化時不等物件請求就主動將依賴傳遞給它
    面向切面
    允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發

  3. 優點
    低侵入式設計,程式碼汙染極低
    獨立於各種應用伺服器,基於Spring框架的應用,可以真正實現Write Once,Run Anywhere的承諾
    Spring的DI機制降低了業務物件替換的複雜性,提高了元件之間的解耦
    Spring的AOP支援允許將一些通用任務如安全、事務、日誌等進行集中式管理,從而提供了更好的複用
    Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的資料庫訪問
    Spring並不強制應用完全依賴於Spring,開發者可自由選用Spring框架的部分或全部

  4. Spring7個模組

    Spring Core核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要元件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉(IOC) 模式將應用程式的配置和依賴性規範與實際的應用程式程式碼分開。

    Spring Context 上下文:Spring 上下文是一個配置檔案,向 Spring 框架提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和排程功能。

    Spring AOP:通過配置管理特性,Spring AOP 模組直接將面向方面的程式設計功能整合到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何物件支援 AOP。Spring AOP 模組為基於 Spring 的應用程式中的物件提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 元件,就可以將宣告性事務管理整合到應用程式中。

    Spring DAO:

    JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常程式碼數量(例如開啟和關閉連線)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。

    Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的物件關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。

    Spring Web 模組:Web 上下文模組建立在應用程式上下文模組之上,為基於 Web 的應用程式提供了上下文。所以,Spring 框架支援與 Jakarta Struts 的整合。Web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。

    Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量檢視技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
    Spring 框架的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支援不繫結到特定 J2EE 服務的可重用業務和資料訪問物件。毫無疑問,這樣的物件可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程式、測試環境之間重用。

  5. Bean和Spring IOC容器
    由Spring IOC容器管理的那些組成你應用程式的物件我們就叫它Bean, Bean就是由Spring容器初始化、裝配及管理的物件。
    Bean物件的兩種模型 :
    單態 模型提供了具有特定名稱的物件的共享例項,可以在查詢時對其進行檢索。Singleton 是預設的也是最常用的物件模型。對於無狀態服務物件很理想。
    原型 模型確保每次檢索都會建立單獨的物件。在每個使用者都需要自己的物件時,原型模型最適合。

  6. ApplicationContext介面

    BeanFactory介面
    BeanFactory介面提供了IoC容器最基本功能
    ApplicationContext介面
    擴充套件了BeanFactory,還提供了與Spring AOP整合、國際化處理、事件傳播及提供不同層次的context實現

    常見的ApplicationContext實現類

    ClassPathXmlApplicationContext
    ApplicationContext實現,從classpath獲取配置檔案;
    BeanFactory beanFactory = new ClassPathXmlApplicationContext("classpath.xml");
    FileSystemXmlApplicationContext
    ApplicationContext實現,從檔案系統獲取配置檔案。
    BeanFactory beanFactory = new FileSystemXmlApplicationContext("fileSystemConfig.xml");
    
    

    ApplicationContext常用方法

    Object getBean(String name) 
    根據名稱返回一個Bean,客戶端需要自己進行型別轉換;
    T getBean(String name, Class<T> requiredType)
    根據名稱和指定的型別返回一個Bean,客戶端無需自己進行型別轉換,如果型別轉換失敗,容器丟擲異常;
    T getBean(Class<T> requiredType) 
    根據指定的型別返回一個Bean,客戶端無需自己進行型別轉換,如果沒有或有多於一個Bean存在容器將丟擲異常;
    Map<String, T> getBeansOfType(Class<T> type) 
    根據指定的型別返回一個鍵值為名字和值為Bean物件的 Map,如果沒有Bean物件存在則返回空的Map。
    

    在applicationContext中配置Bea

    applicationContext.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	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   
            http://www.springframework.org/schema/context   
            http://www.springframework.org/schema/context/spring-context-4.0.xsd">
       <bean id="hello" name="hello1" class="com.trkj.beans.HelloWorld"></bean>
    </beans>
    
  7. Spring零配置

    零配置
    零配置是指不需要在xml檔案中配置Bean,而是藉助註解實現
    配置Bean的註解
    @Component :標註一個普通的Spring Bean類。
    @Controller : 標註一個控制器元件類。
    @Service: 標註一個業務邏輯元件類。
    @Repository : 標註一個DAO元件類。

    applicationContext.xml自動掃描Bean:

    <!--自動掃描Bean-->
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	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   
            http://www.springframework.org/schema/context   
            http://www.springframework.org/schema/context/spring-context-4.0.xsd">
       	<context:annotation-config />
    	<context:component-scan base-package="com.trkj.*" />
    </beans>