Spring AOP自定义注解样例
参考:http://www.cnblogs.com/shipengzhi/articles/2716004.html
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Ann { String value(); }
注解处理器 public class AnnoSupport { /** * 处理过程 * @param joinPoint AOP切入点 * @return * @throws Throwable */ public Object doSupport(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("doSupport"); try { return process(joinPoint); } catch (Throwable t) { throw t; } } /** * 处理过程 * @param joinPoint AOP切入点 * @return * @throws Throwable */ private Object process(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("process"); Class<?> clazz = joinPoint.getTarget().getClass(); String className = clazz.getSimpleName();//获取类名 Signature signature = joinPoint.getSignature(); Method method = ((MethodSignature) signature).getMethod(); String methodName = method.getName();//获取方法名 Method realMethod = clazz.getMethod(methodName, method.getParameterTypes()); if (realMethod.isAnnotationPresent(Ann.class)) { ... ... Ann ann = realMethod.getAnnotation(Ann.class);//获取注解 System.out.println("ann:" + ann.value()); } return joinPoint.proceed();//执行方法 } }
spring配置 <bean id="annoSupport" class="com.test.AnnoSupport"/> <bean id="TestAnn" class="com.test.TestAnn"> </bean> <!- 注册注解处理器 --> <aop:aspectj-autoproxy/> <aop:config> <aop:aspect ref="annoSupport"> <aop:pointcut id="supportMethod" expression="@annotation(com.test.Ann)"/> <aop:around pointcut-ref="supportMethod" method="doSupport"/> </aop:aspect> </aop:config>
测试类 public class TestAnn { @Ann("test") public String ann(String test){ return test; } public static void main(String[] args){ ApplicationContext ac = new FileSystemXmlApplicationContext("file:D:\\workspace\\src\\main\\java\\com\\test\\applicationContext.xml"); TestAnn test = (TestAnn)ac.getBean("TestAnn"); test.ann("Test ann"); } }
相关推荐
2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、可在现有源码上快速进行功能扩展 4、spring boot,mybatis,druid,spring aop的使用
spring自定义注解样例
spring aop 自定义切面示例 aspectj 需要相应的架包支持
一个简单的采用自定义注解结合SpringAop实现方法执行的权限管理,这个demo中并没有涉及到与数据库的交互和业务代码,用户权限在登陆时采用简单的手动初始化。该demo用的jdk1.7编译,Spring4.0版本,只想通过这个demo...
spring中自定义注解(annotation)与AOP中获取注解.通过实例演示自定义注解。
SpringBoot AOP各种注解、自定义注解、鉴权使用案例SpringBoot AOP各种注解、自定义注解、鉴权使用案例SpringBoot AOP各种注解、自定义注解、鉴权使用案例
下面小编就为大家分享一篇spring AOP自定义注解方式实现日志管理的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop
本篇文章主要介绍了Spring AOP 自定义注解的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
SpringMVC利用AOP实现自定义注解记录日志
SpringAOP的注解配置完成切面的编程,完成execution,annotation两种表达式的实例Ddemo
spring aop 自定义缓存实现的一个小实例,地址:http://blog.csdn.net/maoyeqiu/article/details/50260357
本篇文章主要介绍了详解使用Spring AOP和自定义注解进行参数检查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
工程介绍:SpringBoot项目脚手架,利用spring aop+java反射实现自定义注解校验参数 源码里有使用都例子在DemoContorller example1:校验userName参数必填 @CheckParams(notNull = true) private String userName;...
关于AOP注解前置通知、后置通知、返回通知、异常通知的注解注释及应用
Spring Mvc AOP通过注解方式拦截controller等实现日志管理
spring aop 通过注解实现的项目,这只是一个简单的例子。运行环境也简单。
使用Spring的注解方式实现AOP的细节
Spring+SpringMvc+MybatisPlus实现多数据源切换、利用自定义Aop注解,只需要在需要切换数据库的方法上加上注解即可实现、极大避免了代码冗余。
SpringBoot 中的 Aop + 自定义注解 1. @AspectJ 1.1 `@AspectJ` 切面类 1.2 `@Pointcut` 创建切入点 1.3 通知 1.4 Spring AOP 和 AspectJ AOP 有什么区别? 2. 在 SpringBoot 中使用 Aop 功能 2.0 创建一个...