1. 程式人生 > >spring框架(二)

spring框架(二)

面向 int 動態代理 實現 訪問修飾符 spring pat 應用 tco

Spring的bean管理(註解)

  1、代碼裏面特殊標記,使用註解可以完成相應功能

  2、註解寫法@註解名稱(屬性名稱=屬性值)

  3、類,方法,屬性(註解使用)

spring註解開發準備
  1、導入基本的jar包及aop的jar包(有關註解的jar包)
  2、創建類,創建方法
  3、創建spring配置文件,引入約束
    spring的ioc註解開發,引入新的約束
  4、開啟註解掃描

@Component:組件(作用在類上)

  Spring中提供@Component的三個衍生註解:(功能目前來講是一致的)

    @Controller :web層

    @Service :業務層

    @Repository :持久層

註解創建對象

  1、在創建對象的類上面使用註解實現

  2、創建對象的四個註解

註解註入屬性 @Autowired自動裝配

  1、創建Service類,創建Dao類,在service得到dao對象

  2、@Resource(name="userDao"):name屬性值 寫 註解創建dao對象value

配置文件和註解混合使用

  1、創建對象操作使用配置文件方式實現

  2、註入屬性的操作使用註解方式實現

AOP

  aop:面向切面編程,擴展功能不修改源代碼實現

  aop采取橫向抽取機制,取代了傳統縱向繼承體系重復性

AOP底層原理

  動態代理實現

AOP操作術語

  Joinpoint(連接點):

    在類裏面可以被增強的方法法,這些方法稱為連接點

  Pointcut(切入點)

    在類裏面可以有很多的方法被增強,實際增強的方法成為切入點

  Advice(通知/增強)

    增強的邏輯,稱為增強,比如擴展日誌功能,這個日誌功能成為增強

      前置通知:在方法前執行

      後置通知:在方法後執行

      異常通知:在方法發生異常執行

      最終通知:在後置之後執行

      環繞通知:

  Aspect(切面)

    把增強應用到具體方法上面的過程稱為切面

    (把增強用到切入點的過程)

spring的aop操作(基於aspectj的xml方式

  1、在spring裏面進行aop操作,使用aspectj實現

    aspectj不是spring一部分,和spring一起使用進行aop操作

    spring2.0以後新增了對AspectJ支持

  2、使用aspectj實現aop有兩種方式

    基於aspectj的xml配置

    基於aspectj的註解方式

AOP操作準備

  1、除了導入基本的jar包之外,還需要導入aop相關的jar包

  2、創建spring核心配置,導入aop約束

使用表達式配置切入點

  1、切入點,實際增強的方法

  2、常用的表達式

    execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)

    execution(* *.*(..))

log4j介紹

  1、通過log4j可以看到程序運行過程中更詳細的信息

    經常使用log4j查看日誌

  2、使用

    導入log4j的jar包

    復制log4j。properties的復制文件,復制到src下面

  3、設置日誌級別

    log4j.rootLogger=info,stdout

    info:看到基本信息

    debug:看到更詳細信息

spring整合web項目演示

  1、演示問題

   (1)action調用service,service調用dao

    每次訪問action時候,都會加載spring配置文件

  2、解決方案

  (1)在服務器啟動時,創建對象加載配置文件

  (2)底層使用監聽器、ServletContext對象

  3、在spring中不需要我們自己寫代碼實現,已經幫助我們封裝

  (1)封裝了一個監聽器,只需要配置監聽器就可以了

  (2)配置監聽器之前做一些事情:導入spring整合web項目的jar包(spring-web.jar)

  (3)指定加載spring配置文件位置

1 <context-param>
2     <param-name>contextConfigLocation</param-name>
3     <param-value>classpath:bean1.xml</param-value>
4 </context-param>

    

spring框架(二)