spring

spring簡介

spring是J2EE應用程序框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命周期進行管理的輕量級容器,可以單獨使用,也可以和Struts框架,mybati框架等組合使用。

IOC與DI

ioc控制反轉。把對象的創建就給spring配置。DI依賴注入,向類里面的屬性設置值。依賴注入不能單獨存在,需要在ioc基礎上完成。

屬性注入的幾種方式:

(1)構造函數注入

(2)set注入


(3)p名稱空間

對象的注入:

使用注解創建對象:

@Service,@Component,@Controller,@Repository

注解注入對象:

@Autowired?? @Resource

AOP

Aspect Oriented Programming 面向切面編程。解耦是程序員編碼開發過程中一直追求的。AOP也是為了解耦所誕生。

具體思想是:定義一個切面,在切面的縱向定義處理方法,處理完成之后,回到橫向業務流.

AOP 主要是利用動態代理模式的技術來實現的
.

有接口的情況下使用jdk代理。沒有接口的情況使用 cglib動態代理。

AOP操作術語

1? Joinpoint(連接點):在spring中這些連接點指的就是可以被增強的方法。

2.在類里面可以很多的方法增強,比如在實際的操作中,只是增強了類里面的add方法和update方法,實際增強的方法稱為切入點。

前置通知:在方法執行前通知。

后置通知:在方法執行后通知。

異常通知:在方法出現異常

最終通知:后置之后執行

環繞通知:在方法之前和方法之后通知。

3.Aspect(切面)把增強應用到具體的方法上面,這個過程稱之為切面。

AOP 的實現原理

AOP分為靜態AOP和動態AOP。靜態AOP是指AspectJ實現的AOP,他是將切面代碼直接編譯到Java類文件中。動態AOP是指將切面代碼進行動態織入實現的AOP。Spring的AOP為動態AOP,實現的技術為: JDK提供的動態代理技術 和 CGLIB(動態字節碼增強技術) 。盡管實現技術不一樣,但 都是基于代理模式 , 都是生成一個代理對象 。



使用注解操作AOP



SpringMVC

運行原理圖:


1.用戶發起請求,dispatcherServlet獲取用戶訪問的路徑。

2.dispatcherServlet去找相應的處理器。

3.dispatcherServlet調用處理器訪問controller.

4.controller調用service,返回modelAndView。

5.dispatcherServlet得到處理結果。

6.調用view解析器對model進行解析

7.將解析后的model數據傳給view顯示

8.http響應給瀏覽器。

<context:component-scan base-package=""/>掃描指定的包中的類上的注解,常用的注解有:



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是Spring Spring是一個開源的Java EE開發框架。Spring框架的核心功能可以應用在任何Jav...
    jemmm閱讀 16,535評論 1 133
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 本章內容: 面向切面編程的基本原理 通過POJO創建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,180評論 0 9
  • 第7天·21天OH卡顏瘦身課 #玩卡不卡·每日一抽# 每一位都可以通過這張卡片覺察自己: 1、直覺他叫什么名字?秀...
    多加花園李瑩閱讀 183評論 0 0