1什麼是aop:aop是面向切面程式設計,也就是說面向某個功能模組程式設計,典型的應用就是spring的宣告式事務,
spring的aop事務解析:
在以前的事務管理是要融合在邏輯**中的,在邏輯**中決定事務是否提交或者回滾,這樣很容易造成**難以維護,**冗餘
但是使用spring的宣告式事務後,只需要在資料庫處理方法上註解事務,就可以對操作進行管理,事務的設定和邏輯**分開,容易維護
2aop有什麼作用
:面向切面程式設計,例如某個功能點,我們只需抽取橫切關注點,然後讓需要處理這些功能點的方法來使用**的方式呼叫
3aop有什麼組成
1切面:橫切關注點被模組化的物件---功能模組化組成的物件
2通知:就是切面需要完成的功能---就是功能的實現方法1、方法2...
3連線點:就是程式執行的某個特定位置,例如方法前方法後,也是通知所關心的位置
4目標:被通知的物件,也是連線點所在的物件
5**(proxy): 向目標物件應用通知之後建立的物件
4aop怎樣使用
1:抽取橫切關注點:也就是抽取我們需要面向切面程式設計的功能,然後模組化物件
2:然後把模組化物件宣告為切面
3:把模組物件細粒化,把功能細分為各個方法
4:宣告通知和通知的連線點
登入示例:
登入前後需要呼叫某乙個動能---->也就是橫切關注點
1切面:橫切關注點模組化的物件--》logincheck
package com.aop;2把模組物件的功能細粒化,細分為各個方法上面**已經細化粒化的import org.aspectj.lang.annotation.after;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.before;
import org.springframework.stereotype.component;
@aspect
@component
public
class
logincheck
public
void
afterlogin()
}
3宣告通知和連線點:
@before(value ="execution(* com.aop.entityservice.*(..))")
public void beforelogin(joinpoint joinpoint)
@after(value ="execution(* com.aop.entityservice.*(..))")
public void afterlogin(joinpoint joinpoint)
login類:
package com.aop;測試**:import org.springframework.stereotype.repository;
@repository
public
class
entityservice
}
publicstatic
void
main(string args) throws sqlexception
Spring的ioc和aop理解
一 ioc,控制反轉 這個指的就是我們獲取物件的方式進行反轉了,改變了。在使用spring之前是需要手動new出來的,是我們主動獲取的。使用spring之後,是將這個獲取的過程交給spring來管理,我們只需要告訴spring你需要什麼就行了,它就會把東西給你。比如 在沒有電商的時候,我們去上街買東...
Spring框架IOC和AOP的理解
spring開源框架 一.什麼是spring?簡單來說 spring是乙個輕量級控制反轉 ioc 和面向切面 aop 容器的框架 spring的基本框架主要包含六大模組 dao orm aop jee web core spring提供了對jdbc的操作支援 jdbctemplate模板工具類 sp...
spring 對AOP的理解
jdk cglib 第三方的工具庫,建立 物件,原理是繼承,通過繼承目標類建立子類,子類就是 物件 cglib要求目標類不能是final的 方法也不能是final的 可以在目標類源 不改變的情況下去增加功能 減少重複 專注業務邏輯 解耦合,讓你的業務功能和日誌,事務非業務功能分離 對aop面向切面程...