spring切面:schema:前后异常增强
来源:互联网 发布:打车软件不合法 编辑:程序博客网 时间:2024/05/16 15:37
1.aop/SchemaLogger类(普通类)
package aop;import java.util.Arrays;import org.apache.log4j.Logger;import org.aspectj.lang.JoinPoint;public class SchemaLogger { private static final Logger log = Logger.getLogger(UserLogger.class); //前置增强-普通类 public void before(JoinPoint jp){ System.out.println("注解前置增强"); System.out.println("调用的方法:"+jp.getSignature()+",传递参数:"+Arrays.toString(jp.getArgs()));} //后置增强-普通类 public void afterReturning(JoinPoint jp,Object returnResult){ System.out.println("注解后置增强"); System.out.println("调用的方法:"+jp.getSignature()+",传递参数:"+Arrays.toString(jp.getArgs())+",返回参数:"+returnResult); } //抛出异常增强-普通类 public void afterThrowing(JoinPoint jp,RuntimeException e){ log.error("调用的方法:"+jp.getSignature()+",传递参数:"+Arrays.toString(jp.getArgs())+",方法发生异常:"+e); } }
2.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:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> <!-- 将前置增强类配成bean,交给spring管理 <bean id="loggerBefore" class="aop.LoggerBefore"></bean> 将后置增强类配成bean,交给spring管理 <bean id="afterReturning" class="aop.AfterReturning"></bean> 配置切面(将增强类关联给某个条件范围内的方法) <bean id="errorLogger" class="aop.ErrorLogger"></bean> --> <!-- <bean id="aroundLogger" class="aop.AroundLogger"></bean> --> <!-- <bean class="aop.UserLogger"></bean> --> <!-- <bean class="aop.AroundLogger2"></bean> --> <!-- <bean class="aop.AfterAnno"></bean> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> --> <bean id="schemaLogger" class="aop.SchemaLogger"></bean> <aop:config> <aop:pointcut expression="execution(* biz.impl.*.*(..))" id="myPoint"/> <aop:aspect ref="schemaLogger"> <aop:before method="before" pointcut-ref="myPoint"/> <aop:after-returning method="afterReturning" pointcut-ref="myPoint" returning="returnResult"></aop:after-returning> <aop:after-throwing method="afterThrowing" pointcut-ref="myPoint" throwing="e"/> </aop:aspect> </aop:config> <!-- <aop:config> 配置切入点pointcut <aop:pointcut expression="execution(* biz.impl.*.*(..))" id="myPoint"/> <aop:advisor advice-ref="loggerBefore" pointcut-ref="myPoint"/> <aop:advisor advice-ref="afterReturning" pointcut-ref="myPoint"/> <aop:advisor advice-ref="errorLogger" pointcut-ref="myPoint"/> <aop:advisor advice-ref="aroundLogger" pointcut-ref="myPoint"/> </aop:config> --> <bean id="userBiz" class="biz.impl.UserBizImpl" p:userDao-ref="userDao"> <!-- <property name="userDao" ref="userDao2"></property> --> </bean> <bean id="userDao" class="dao.impl.UserDaoImpl" /> <bean id="userDao2" class="dao.impl.UserDaoImpl2" /> </bean></beans>
3.dao.impl/UserDaoImpl类
package dao.impl;import javax.management.RuntimeErrorException;import dao.UserDao;import entity.User;public class UserDaoImpl implements UserDao { @Override public User findUser() { System.out.println("===========Dao层查询User 1=============="); User u=new User("Tom",22); //throw new RuntimeException("出现异常"); return u; }}
4. test;
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import entity.User;import biz.UserBiz;import biz.impl.UserBizImpl;import ioc.HelloWorld;public class TestMain { /** * @param args */ public static void main(String[] args) { //加载spring容器,解析配置文件 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); UserBiz userBiz=(UserBiz) ac.getBean("userBiz"); User u= userBiz.getUser(101); System.out.println(u.getUname()+","+u.getAge()); }}
0 0
- spring切面:schema:前后异常增强
- spring切面:接口:异常增强
- spring切面:注解:抛出异常增强
- spring切面:接口:环绕增强
- spring切面:注解:环绕增强
- spring切面:注解:最终增强
- 【Spring AOP】基于Schema配置切面
- 【Spring AOP】基于Schema配置切面
- Spring AOP 之 Schema配置切面
- Spring-AOP 基于Schema配置切面
- spring切面:接口:前后置增强
- spring AOP切面编程在方法执行前后切入日志
- Spring AOP切面实现:异常处理
- spring aop事务通知(切面异常处理)
- Spring AOP源码解读2 - 切面和增强的取得
- Spring aop-本类方法调用切面增强失效
- spring中的增强:注解和schema配置几种情况
- 使用Spring(11)使用Spring进行面向切面编程(AOP)Schema-based AOP support
- 设计模式之16 - 迭代器模式Itertor
- MVP+RxJava+Dagger打造的Android Album
- 5.模拟短信发送
- 前端seo
- JAVA 服务器 java home 配置的问题
- spring切面:schema:前后异常增强
- Sublime Text总在新窗口打开一个文件夹
- 冰封的CSDN博客
- centos 搭建ftp服务器
- 设计模式之17 - 中介者模式Mediator
- 6.读写内部存储的文件
- Java虚拟机学习(6):对象访问
- [01]项目实战-PC 端固定布局(1)
- Java NIO系列教程(二) Channel