SSM框架學習之Spring學習筆記


要掌握SSM,所學內容還是要規划一下,不建議直接開擼SSM,最好把Spring SpringMVC Mybatis各個擊破

我的學習網站:http://how2j.cn/k/ssm/ssm-tutorial/1137.html?tid=77

Spring框架是個輕量級的Java EE框架。IOC(控制反轉)、DI(依賴注入)、AOP(面向切面)是Spring的核心思想

一、IOC/DI(控制反轉/依賴注入)

IOC(控制反轉 ):就是 創建對象由以前的程序員自己new來調用,變成了交由Spring創建對象。

和傳統方式獲取對象的方式不同:

傳統方式:通過new 關鍵字創建一個對象,比如:Person p = new Person();

IOC方式:對象的生命周期由Spring管理,直接從Spring那里獲取一個對象。控制反轉 也就是 控制權原來屬於程序員 現在交給了Spring

DI(依賴注入):就是 拿到的對象的屬性,已經被注入好了相關的值,直接使用即可。

二、注入對象

可為對象的屬性注入值。

可為對象注入值。

例如:

三、注解方式IOC/DI

以上為在applicationContext.xml配置文件中直接配置。還可以用注解的方式進行配置,以簡化xml的配置內容。

在xml中添加  <context:annotation-config/>  表示  告訴Spring要用注解的方式進行配置

例如:

在Product對象的category屬性前加上@Autowired注解

 

除了在屬性前加上@Autowired這種方式外,也可以在setCategory方法前加上@Autowired,這樣來達到相同的效果

除了@Autowired之外,@Resource也是常用的手段

上述例子是對注入對象行為的注解,那么bean對象本身,比如Category,Product可不可以移出applicationContext.xml配置文件,也通過注解進行呢?

比如:將下圖中的內容移除xml以注解的形式配置

刪除xml中的所有配置 只添加  <context:component-scan base-package="com.how2java.pojo"/>  表示 告訴Spring,bean都放在com.how2java.pojo這個包下

例如:

使用@Component注解

例如:

四、AOP

AOP 即 Aspect Oriented Programming 面向切面編程

在面向切面編程的思想里面,把功能分為核心業務功能,和周邊功能

所謂的核心業務,比如登陸,增加數據,刪除數據都叫核心業務 
所謂的周邊功能,比如性能統計,日志,事務管理等等

周邊功能在Spring的面向切面編程AOP思想里,即被定義為切面 
在面向切面編程AOP的思想里面,核心業務功能和切面功能分別獨立進行開發 
然后把切面功能和核心業務功能 "編織" 在一起,這就叫AOP

 

准備業務類 ProductService

准備日志切面 LoggerAspect

配置 applicationContext.xml

execution(* com.how2java.service.ProductService.*(..))

這表示對滿足如下條件的方法調用,進行切面操作:
* 返回任意類型
com.how2java.service.ProductService.* 包名以 com.how2java.service.ProductService 開頭的類的任意方法
(..) 參數是任意數量和類型

測試

通過配置的方式,把切面和核心業務類編制在了一起。

運行測試,可以發現在編織之后,業務方法運行之前和之后分別會打印日志

 五、注解方式AOP

上面配置AOP方式為xml  也可以用注解的方式配置AOP

使用@Component("s") 注解ProductService 類

注解配置切面

@Aspect 注解表示這是一個切面
@Component 表示這是一個bean,由Spring進行管理
@Around(value = "execution(* com.how2java.service.ProductService.*(..))") 表示對com.how2java.service.ProductService 這個類中的所有方法進行切面操作

配置xml

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM