spring-AspectJ異常通知
一、建立專案
專案名稱:spring101002
二、新增jar包
1.在專案中建立lib目錄
/lib
2.在lib目錄下新增相關spring jar包
--用於AspectJ
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
--用於切面程式設計
com.springsource.org.aopalliance-1.0.0.jar
commons-logging.jar
junit-4.10.jar
log4j.jar
--用於切面程式設計
spring-aop-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
三、新增配置檔案
1.在專案中建立conf目錄
/conf
2.在conf目錄下新增配置檔案
配置檔名稱:applicationContext.xml
配置檔案內容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
四、建立業務bean
1.在src目錄下建立業務bean包
包名:cn.jbit.spring101002.service
2.在包下建立業務bean
業務bean名稱:UserService.java
業務bean內容:
/**
* 被代理類
* @author Administrator
*
*/
public class UserService {
/**
* 6.修改使用者
*/
public void update(){
System.out.println("執行修改使用者方法");
int a = 1/0;
}
}
五.建立切面
1)在src下建立包
包名:cn.jbit.spring101002.aspect
2)在包下建立自定義切面類
切面名稱:AnnotationAspect.java
切面內容:
/**
* 自定義切面
* @author Administrator
*
*/
@Aspect
public class AnnotationAspect {
/**
* 6.異常通知
*/
@AfterThrowing(value="execution(* cn.jbit.spring101002.service.UserService.*(..))",throwing="throwable")
public void exception(JoinPoint joinPoint,Throwable throwable){
System.out.println("異常通知被執行,執行連線點:"+joinPoint+",產生異常"+throwable);
}
}
六、在核心配置檔案中新增配置資訊
<!-- 配置被代理類 -->
<bean id="userservice" class="cn.jbit.spring101002.service.UserService"></bean>
<!-- 配置切面 -->
<bean id="annotationaspect" class="cn.jbit.spring101002.aspect.AnnotationAspect"></bean>
<!-- 配置自動代理 -->
<aop:aspectj-autoproxy/>
七、測試
1.在專案中建立test目錄
/test
2.在test目錄中建立測試包
包名:cn.jbit.spring101002.aspect
3.在測試包中建立測試類
測試類名:AnnotationAspectTest.java
測試內容:
/**
* 測試類
* @author Administrator
*
*/
public class AnnotationAspectTest {
/**
* 6.測試異常通知
*/
@Test
public void testAfterThrowing(){
//讀取並載入配置檔案
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
//根據bean id 獲取bean物件
UserService userService = (UserService) context.getBean("userservice");
//呼叫儲存使用者方法
userService.update();
}
專案名稱:spring101002
二、新增jar包
1.在專案中建立lib目錄
/lib
2.在lib目錄下新增相關spring jar包
--用於AspectJ
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
--用於切面程式設計
com.springsource.org.aopalliance-1.0.0.jar
commons-logging.jar
junit-4.10.jar
log4j.jar
--用於切面程式設計
spring-aop-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
三、新增配置檔案
1.在專案中建立conf目錄
/conf
2.在conf目錄下新增配置檔案
配置檔名稱:applicationContext.xml
配置檔案內容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
四、建立業務bean
1.在src目錄下建立業務bean包
包名:cn.jbit.spring101002.service
2.在包下建立業務bean
業務bean名稱:UserService.java
業務bean內容:
/**
* 被代理類
* @author Administrator
*
*/
public class UserService {
/**
* 6.修改使用者
*/
public void update(){
System.out.println("執行修改使用者方法");
int a = 1/0;
}
}
五.建立切面
1)在src下建立包
包名:cn.jbit.spring101002.aspect
2)在包下建立自定義切面類
切面名稱:AnnotationAspect.java
切面內容:
/**
* 自定義切面
* @author Administrator
*
*/
@Aspect
public class AnnotationAspect {
/**
* 6.異常通知
*/
@AfterThrowing(value="execution(* cn.jbit.spring101002.service.UserService.*(..))",throwing="throwable")
public void exception(JoinPoint joinPoint,Throwable throwable){
System.out.println("異常通知被執行,執行連線點:"+joinPoint+",產生異常"+throwable);
}
}
六、在核心配置檔案中新增配置資訊
<!-- 配置被代理類 -->
<bean id="userservice" class="cn.jbit.spring101002.service.UserService"></bean>
<!-- 配置切面 -->
<bean id="annotationaspect" class="cn.jbit.spring101002.aspect.AnnotationAspect"></bean>
<!-- 配置自動代理 -->
<aop:aspectj-autoproxy/>
七、測試
1.在專案中建立test目錄
/test
2.在test目錄中建立測試包
包名:cn.jbit.spring101002.aspect
3.在測試包中建立測試類
測試類名:AnnotationAspectTest.java
測試內容:
/**
* 測試類
* @author Administrator
*
*/
public class AnnotationAspectTest {
/**
* 6.測試異常通知
*/
@Test
public void testAfterThrowing(){
//讀取並載入配置檔案
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
//根據bean id 獲取bean物件
UserService userService = (UserService) context.getBean("userservice");
//呼叫儲存使用者方法
userService.update();
}
}
本文轉自 素顏豬 51CTO部落格,原文連結:http://blog.51cto.com/suyanzhu/1562140
相關文章
- 使用 bearychat 通知你的系統異常吧
- 香港地域ECS網路延遲異常通知公告
- yii-log-target - 監控系統異常且多渠道傳送異常資訊通知
- 支援多種通道的 laravel 異常監控通知元件Laravel元件
- Laravel 使用 bearychat 通知你的系統異常吧Laravel
- 釘釘機器人實現異常預警通知功能機器人
- laravel-exception-notify - 支援多種通道的 laravel 異常監控通知LaravelException
- k8s系統,異常通知對接釘釘系統K8S
- 異常篇——異常處理
- 異常和異常呼叫鏈
- 利用 [微信公眾號通知] 給你的網站加上異常提醒吧網站
- Java 異常(二) 自定義異常Java
- Java checked異常和unchecked異常。Java
- 異常-編譯期異常和執行期異常的區別編譯
- Android常駐通知欄Android
- 異常-throws的方式處理異常
- 異常處理與異常函式函式
- jmu-Java-06異常-01-常見異常Java
- 支援多種通道的 laravel 異常監控通知元件(2.x重構版本)Laravel元件
- hibernate異常之--count查詢異常
- Java 異常表與異常處理原理Java
- restframework 異常處理及自定義異常RESTFramework
- oracle 異常Oracle
- OutOfMemoryError異常Error
- Java異常Java
- 異常(Exception)Exception
- Java 異常Java
- 異常JavaJava
- 【java】異常Java
- java 異常Java
- Flutter 常見異常分析Flutter
- Java 異常(一) 異常概述及其架構Java架構
- MVC使用異常過濾器處理異常MVC過濾器
- 儲存過程——異常捕獲&列印異常資訊儲存過程
- C#規範整理·異常與自定義異常C#
- 異常-try...catch的方式處理異常1
- 異常-try...catch的方式處理異常2
- 異常-自定義異常的實現和測試