用注解配置动态代理

/**
* 切面类,要将当前类中的方法插入到目标对象的方法
*
* @author ASUS
*
*/
@Aspect
// 表示此类为切面类
public class ProxyObj {
// // @Before 表示前置通知。目标方法执行前需要调用该方法
// // * com.lovo.service.*.*(..) 表示目标方法的路径
// // 第一个*表示方法返回类型为任意类型
// // com.lovo.service为包名 com.lovo.service..为指定包和指定的子包
// // *.*表示该包中所有的类的所有的方法 s*.*表示该包中以s开头的类的所有的方法
// // (..)该方法中的参数为任意参数
// // @Before("execution(* com.lovo.service.*.*(..))")
// // public void ready() {
// // System.out.println("开始订餐。。。");
// // }
// // @AfterReturning("execution(* com.lovo.service.*.*(..))")
// // public void end(){
// // System.out.println("开发票。。");
// // }
// // 环绕注解
// @Around("execution(* com.lovo.service.*.*(..))")
// public Object around(ProceedingJoinPoint point) {
// System.out.println("取钱");
// try {
// // 执行目标方法,该方法将得到目标方法执行完毕后的返回值
// Object value = point.proceed();
// System.out.println("茶多酚");
// return value;
// } catch (Throwable e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// return null;
// }

@AfterThrowing(value = "execution(* com.lovo.service.*.*(..))", throwing = "er")
public void throwsMethod(JoinPoint point, Exception er) {
// 得到目标对象
Object obj = point.getTarget();
// 得到目标对象的类型
String className = obj.getClass().getName();
// 得到目标方法名
String methodName = point.getSignature().getName();
System.out.println("执行"+className+"的"+methodName+"方法,抛出"+er.getMessage());
}

}

时间: 2024-09-30 01:24:37

用注解配置动态代理的相关文章

注解 、 动态代理、类加载

单元测试 @Test eclipse自带jar包 Ctrl+1导入使用 注解 JDK提供的注解 @Deprecated 表示被修饰的方法已经过时 @Override 重写方法 1.5支持父类不支持接口 1.5之后支持接口 @SuppressWarnings 抑制警告 需要给属性值 all 所有的警告都被抑制 ({    }) "unused" 没有使用警告 "rawtypes" 类型不安全警告 "unchecked" 使用不安全 安全检查 &qu

类加载器,注解,动态代理

一.类加载器 1.什么是类加载器,作用是什么? 类加载器就加载字节码文件(.class) 2.类加载器的种类 类加载器有三种,不同类加载器加载不同的 1)BootStrap:引导类加载器:加载都是最基础的文件 2)ExtClassLoader:扩展类加载器:加载都是基础的文件 3)AppClassLoader:应用类加载器:三方jar包和自己编写java文件 怎么获得类加载器?(重点) ClassLoader 字节码对象.getClassLoader(); Class clazz = XXX.c

java基础第十八篇之单元测试、注解和动态代理

1:单元测试 1)JUnit是一个Java语言的单元测试框架,这里的单元指的就是方法 2)单元测试用来替换以前的main方法 1.1 Junit测试的步骤 1:在方法的上面加上 @Test 2:将junit库添加到工程的构建路径 3:选中方法--->右键--->JunitTest 1.2 常用的Junit测试注解 常用注解 @Test,用于修饰需要执行的方法 @Before,测试方法前执行的方法 @After,测试方法后执行的方法 1.3 测试有返回值的方法 public int sum(in

第17天(基础加强_注解_类加载器_动态代理)_学习目标版本

学习目标 能够使用Junit进行单元测试 能够说出注解的作用 能够使用JDK提供的3个注解 能够根据基本语法编写自定义注解实现类 能够了解自定义注解解析 能够了解元注解使用 能够根据上课案例分析,编写模拟@Test案例 能够理解动态代理原理 能够使用动态代理Proxy编写代理类 Junit单元测试 Junit介绍 JUnit是一个Java语言的单元测试框架,简单理解为可以用于取代java的main方法.Junit属于第三方工具,一般情况下需要导入jar包,不过,多数Java开发环境已经集成了JU

框架学习前基础加强 泛型,注解,反射(泛型&注解)应用案例,IOC,Servlet3.0,动态代理,类加载器

泛型 1. 泛型类 :具有一个或多个类型变量的类,称之为泛型类! class A<T> { } 2. 在创建泛型类实例时,需要为其类型变量赋值 A<String> a = new A<String>(); * 如果创建实例时,不给类型变量赋值,那么会有一个警告! 3. 泛型方法 :具有一个或多个类型变量的方法,称之为泛型方法! class A<T> { public T fun(T t1) {} } fun()方法不是泛型方法!它是泛型类中的一个方法! pu

Java--简单的Spring AOP配置以及AOP事物管理,JDK/GCLib动态代理

一.看一下简单的通过XML的AOP配置 1.首先创建一个简单的Student类 public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println("Age : " + age); return age; } public void

【JAVAWEB学习笔记】25_基础加强:类加载器、注解 @xxx和动态代理

基础加强 学习目标 案例-自定义单元测试@MyTest 案例-全局的编码的解决 一.类加载器 1.什么是类加载器,作用是什么? 类加载器就加载字节码文件(.class) 2.类加载器的种类 类加载器有三种,不同类加载器加载不同的 1)BootStrap:引导类加载器:加载都是最基础的文件 2)ExtClassLoader:扩展类加载器:加载都是基础的文件 3)AppClassLoader:应用类加载器:三方jar包和自己编写java文件 怎么获得类加载器?(重点) ClassLoader 字节码

小峰mybatis(5)mybatis使用注解配置sql映射器--动态sql

一.使用注解配置映射器 动态sql: 用的并不是很多,了解下: Student.java 实体bean: package com.cy.model; public class Student{ private Integer id; private String name; private Integer age; public Student(){ } public Student(String name, Integer age){ this.name = name; this.age =

动态代理中的自定义注解样式

动态代理中的自定义注解的样式 @Target(ElementType.METHOD) 代表此注解使用对象是method@Retention(RetentionPolicy.RUNTIME) 代表此注解的生存域是运行期 package cn.tedu.anno; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPo