Java配置实现AOP
来源:互联网 发布:网络直播现象研究 编辑:程序博客网 时间:2024/06/11 00:22
业务类
package com.csl.demo2.demo2.aop;import org.springframework.stereotype.Service;/** * * @author Cherry * @date 2017年10月1日 * */@Servicepublic class AopTest { //自定义之注解 @Action(value = "注解之内容!") public void show () { System.out.println("一个方法!"); }}
切面对象
package com.csl.demo2.demo2.aop;import java.lang.reflect.Method;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.aspectj.lang.reflect.MethodSignature;import org.springframework.stereotype.Component;/** * * @author Cherry * @date 2017年10月1日 * */@Aspect@Componentpublic class Aspacts { //切入点作用的方法 @Pointcut("execution(* com.csl.demo2.demo2.aop.AopTest.*(..))") public void point() {} //前置通知 @Before("point()") public void afterAop() { System.out.println("方法之前!"); } //后置通知 @After("point()") public void before(JoinPoint joinPoint) { MethodSignature ms = (MethodSignature) joinPoint.getSignature(); Method m = ms.getMethod(); //获取方法的注解内容 String v = m.getAnnotation(Action.class).value(); System.out.println("方法之后!\n方法上的注解值:"+ v); }}
Java配置类
package com.csl.demo2.demo2.aop;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;/** * * @author Cherry * @date 2017年10月1日 * */@Configuration//Java配置类@ComponentScan("com.csl.demo2.demo2")@EnableAspectJAutoProxy//开启Spring对AspactJ的代理public class AopConfig{}
自定义注解类Action
package com.csl.demo2.demo2.aop;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * * @author Cherry * @date 2017年10月1日 * */@Target(ElementType.METHOD)//作用于方法上@Retention(RetentionPolicy.RUNTIME)//运行时执行@Documentedpublic @interface Action { String value();}
测试类
package com.csl.demo2.demo2.aop;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * * @author Cherry * @date 2017年10月1日 * */public class Main { public static void main(String[] args) { @SuppressWarnings("resource") //使用AnnotationConfigApplicationContext容器 AnnotationConfigApplicationContext aac = new AnnotationConfigApplicationContext(AopConfig.class); //获取业务对象 AopTest at = (AopTest) aac.getBean("aopTest"); at.show(); aac.destroy(); }}
运行结果
方法之前!一个方法!方法之后!方法上的注解值:注解之内容!
阅读全文
0 0
- Java配置实现AOP
- Spring实现AOP,配置
- java实现类似spring的可配置AOP框架
- 采用AOP配置方式的AOP实现
- Java实现AOP
- Java AOP实现
- JAVA AOP实现方式
- 使用Java实现AOP
- Java,Android 实现AOP
- Spring AOP实现方式(配置)
- Spring AOP XML配置实现
- Java AOP & Spring AOP 原理和实现
- Java动态代理实现AOP
- java动态代理实现aop
- java动态代理实现AOP
- java动态代理实现AOP
- java+spring简单实现AOP
- java.lang.instrument实现aop
- nginx开启ssl
- 对象的克隆
- 【C】 结构体与结构体指针,->在C语言中的唯一用途
- 爬取微博对话语料制作聊天机器人
- Hibernate优化方案
- Java配置实现AOP
- POJ3281(最大流)
- [kuangbin带你飞]专题七 线段树 E
- House Robber III:打家劫舍 在二叉树结构中取非相邻元素求和取最大
- 图灵机器人加入微信公众号
- 解决:使用create-react-app构建react应用很慢
- 微信小程序-Icon图标
- 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”。是否缺少程序集引用?
- 【JVM】内存小结