第五章 Spring核心概念
5.1.1 企業級應用開發
企業級應用是指那些為商業組織,大型企業而建立部署的解決方案及應用,大型企業級應用的結構複雜,涉及的外部資源眾多,事務密集,資料規模大,使用者數量多,有較強的安全性考慮和較高的效能要求
Spring是企業應用開發的 一站式 選擇 Spring貫穿表現層,業務層,持久層。
5.1.2 Spring的 綠草叢
Spring是一個輕量級框架,大大簡化了Java企業級開發,提供了強大,穩定的功能。
Spring有兩個主要目標:一是讓現有技術更易於使用,二是促進良好的程式設計習慣。
Spring是一個全面的解決方案,但它堅持一個原則:不重新發明技術
Spring Core是框架的最基礎部分,提供了IoC特性,Spring Context為企業級開發提供了便利和整合工具,Spring AOP是基於Spring Core的符合規範的面向切面程式設計的實現。
5.2.1 理解 “控制反轉”
控制反轉也稱為依賴注入,是面向物件程式設計中的一種設計理念,用來降低程式程式碼之間的耦合度。
什麼是依賴,依賴 在程式碼中一般指通過區域性變數,方法引數,返回值等建立的對於其他物件的呼叫關係。
不在依靠自身的程式碼去獲得所依賴的具體DAO物件,而是把這一工作轉交給了 第三方 從而避免了和具體 實現類之間的耦合。
5.2.2 Hello,Spring
Spring 官方的地址 http://repo.spring.io/release/org/springframework/spring
編寫Spring配置檔案,可在專案中建立專門的SourceFolder 下 建立applicationContext.xml檔案
<?xml version="1.0"
<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-3.2.xsd">
<bean id="zg" class="sjiyi.Shangjiyi">
<property name="zhangga">
<value>張嘎</value>
</property>
<property name="rod">
<value>三天不打鬼子,手都癢癢</value>
</property>
</bean>
<bean id="r" class="sjiyi.Shangjiyi">
<property name="zhangga">
<value>Rod</value>
</property>
<property name="rod">
<value>世界上有10種人,認識二進位制的和不認識二進位制的</value>
</property>
</bean>
</beans>
通過ClassPathXmlApplicationContext例項化Spring的上下文
ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”)
//通過ApplicationContext 的getBean()方法,根據id來獲取Bean的例項
HelloSpring helloSpring = (HelloSpring) context.getBean(“Bean id名”);
5.3.1 理解面向切面程式設計
面向切面程式設計 是軟體程式設計思想發展到一定階段的產物 是面向物件程式設計的有益補充。
切面: 一個模組化的橫切邏輯 可能會橫切多個物件
連線點:程式執行中的某個具體的執行點
增強處理:切面在某個特定連線點上執行的程式碼邏輯
切入點: 對連線點的特徵進行描述,可以使用正則表示式。增強處理和一個切入點表示式相關聯,並在與這個切入點匹配的某個連線點上執行。
目標物件:被一個或多個切面增強的物件
AOP代理:由AOP框架所建立的物件,實現執行增強處理方法等功能
織入:將增強處理連線到應用程式中的型別或物件上的過程
增強處理型別:在原物件的fun()方法之前插入的增強處理為前置增強,方法正常執行完以後插入的增強處理為後置增強,此外還有環繞增強,異常丟擲增強,最終增強等型別
5.3.2 使用Spring AOP實現日誌輸出
1.在專案中新增Spring AOP相關的jar檔案
2.編寫前置增強和後置增強實現日誌功能
3.編寫Spring配置檔案,對業務方法進行增強處理
新增AOP相關的配置
Xmlns:aop=http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xds
4.編寫程式碼,獲取帶有增強處理的業務物件
Execution 是切入點指示符,它的括號中是一個切入點表示式,可以配置需要切入增強處理的方法的特徵,切人點表示式支援模糊匹配
Public * addNewUser(entity.User) * 表示匹配所有型別的返回值。
Public void *(entity.User) * 匹配所有的方法名
Public void addNewUser(..): “..” 表示匹配所有引數個數和型別
l Com.service.*.*(..) 這個表示式匹配com.service包下所有類的所有方法
l Com.service..*.*(..): 這個表示式匹配com.service包及其子2包下所有類的所有方