Spring框架的AOP技術(註解方式)
阿新 • • 發佈:2018-12-17
1. 步驟一:建立JavaWEB專案,引入具體的開發的jar包 * 先引入Spring框架開發的基本開發包 * 再引入Spring框架的AOP的開發包 * spring的傳統AOP的開發的包 * spring-aop-4.2.4.RELEASE.jar * com.springsource.org.aopalliance-1.0.0.jar * aspectJ的開發包 * com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar * spring-aspects-4.2.4.RELEASE.jar 2. 步驟二:建立Spring的配置檔案,引入具體的AOP的schema約束 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> </beans> 3. 步驟三:建立包結構,編寫具體的介面和實現類 * com.huida.demo1 * CustomerDao -- 介面
package com.huid.demo1; public interface CustomerDao { public void save(); public void update(); }
* CustomerDaoImpl -- 實現類
package com.huid.demo1; public class CustomerDaoImpl implements CustomerDao { @Override public void save() { System.out.println("儲存客戶"); } @Override public void update() { System.out.println("修改客戶"); } }
4. 步驟四:將目標類配置到Spring中 <bean id="customerDao" class="com.huida.demo1.CustomerDaoImpl"/> 5. 步驟五:定義切面類 * 新增切面和通知的註解 * @Aspect -- 定義切面類的註解 * 通知型別(註解的引數是切入點的表示式) * @Before -- 前置通知 * @AfterReturing -- 後置通知 * @Around -- 環繞通知 * @After -- 最終通知 * @AfterThrowing -- 異常丟擲通知 * 具體的程式碼如下 @Aspect public class MyAspectAnno { @Before(value="execution(public void com.huida.demo1.CustomerDaoImpl.save())") public void log(){ System.out.println("記錄日誌..."); } } 6. 步驟六:在配置檔案中定義切面類 <bean id="myAspectAnno" class="com.huida.demo1.MyAspectAnno"/> 7. 步驟七:在配置檔案中開啟自動代理 <aop:aspectj-autoproxy/> 8. 完成測試 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class Demo1 { @Resource(name="customerDao") private CustomerDao customerDao; @Test public void run1(){ customerDao.save(); customerDao.update(); } }