Spring AOP注解例子

一:导入相关jar包。

首先导入Spring的相关包(这里就不多说了,我这里是3.2.4版本的)

然后导入AOP注解的相关包(不是spring的包)aspectjrt-1.6.7.jar和aspectjweaver-1.6.8.jar和aopalliance.jar

(注意这里最好是1.6.7以上的版本,不然容易出错,折腾了我好久,最后才发现是包的版本问题。

所以这里一定要注意,spring 2.0以后的最好是用1.6.7的版本)

二: 建一个class类作为切入面(这个只是用来演示而已,这个切面是拦截com.afmobi.service包下的所有类的所有方法)

package com.afmobi.frame;

import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.annotation.After;

import org.aspectj.lang.annotation.AfterReturning;

import org.aspectj.lang.annotation.AfterThrowing;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.stereotype.Component;

@Aspect

@Component

public class AopLogTest {

@Pointcut("execution(* com.afmobi.service.*.*(..))")

public void anyMethod(){

}

@Before("anyMethod()")

public void before() {

System.out.println("---Aop 的 前置通知---");

}

@AfterReturning("anyMethod()")

public void doAfter(){

System.out.println("---Aop 的 后置通知---");

}

@After("anyMethod()")

public void after(){

System.out.println("---Aop 的最终通知(发生异常也会通知)---");

}

@AfterThrowing("anyMethod()")

public void doAfterThrow(){

System.out.println("---Aop 的抛出异常通知---");

}

@Around("anyMethod()")

public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{

System.out.println("---Aop 的 环绕通知 通知---");

Object object = pjp.proceed();//执行该方法

return object;

}

}

三: 在spring的配置文件里配置这个切面类(这里按spring AOP注解的方式配置,不是xml的方式):

注意:核心AOP注解配置就是和

到此就ok了。

java spring aop 注解包_Spring AOP 注解配置实例相关推荐

  1. SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对照注解方式的优缺点)...

    接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文採用强制的CGLB代理方式 Security ...

  2. java spring多数据源配置文件_基于注解实现SpringBoot多数据源配置

    1.功能介绍 在实际的开发中,同一个项目中使用多个数据源是很常见的场景.最近在学习的过程中使用注解的方式实现了一个Springboot项目多数据源的功能.具体实现方式如下. 2.在applicatio ...

  3. spring之aspects包、aop包和aspectj包的简单梳理

    稀里糊涂的分不清这三个包的关系到底是什么,因此查了一下写篇总结. 1.aop包本身具有完整的AOP实现,但是只会使用Cglib或者JDK动态代理,在类加载时通过动态代理织入(补充一句:spring容器 ...

  4. java spring 传大数据类型_Spring MVC前后端数据交互总结

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

  5. java如何实现配置文件动态刷新_Spring Cloud 动态刷新配置信息教程详解

    有时候在配置中心有些参数是需要修改的,这时候如何不重启而达到实时生效的效果呢? 添加依赖 ... org.springframework.boot spring-boot-starter-actuat ...

  6. java aop注解拦截_Spring AOP 拦截指定注解标识的类或方法

    代码Demo @Aspect @Component @Order(10) public class BidAuthorityProxy { /** * 扫描指定包下的类中使用@EnableRoleAu ...

  7. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程

    AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于日志.权限控制.异常处理等业务中. 快速导航 编程范式主要以下几大类 AOP(Aspec ...

  8. java常用注解汇总_Spring常用注解汇总

    概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO ...

  9. java aop性能检测_Spring AOP 性能监控器

    spring,真是一个好东西:性能,真是个让人头疼又不得不面对的问题.如何排查出项目中性能瓶颈?如何迅速定位系统的慢查询?在这我就不说spring自带的性能监控器了,实在是有些简陋.下面就说说我自己写 ...

最新文章

  1. Java中AudioFileStream_AudioFileStream学习
  2. Request header field token is not allowed by Access-Control-Allow-Headers in
  3. Document Builder: replace variable guid in merge
  4. blockUI应用到Asp.Net页面时服务器控件(Button等)失效的问题
  5. Fatal error: Class 'ZipArchive' not found的解决办法
  6. 2010年的最后一天,我又辞工(日记)
  7. Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法 1 2. 功能用途 why 2 2.1. 上传下载文件 2
  8. 路由器刷机教程图解_路由器变砖怎么办救活成功修复TFTP详细图文教程
  9. 【Android】ListView刷新、加载
  10. php 死链查询,网站最新死链查询和处理方法
  11. python读取odb_abaqus通过python从ODB中抽取模型数据和结果数据.pdf
  12. smss,lsass, http://laji.xrlyy.com病毒处理
  13. su VS sudo
  14. 平面设计分析之图形创意解析
  15. 渐渐逝去的青春---老男孩
  16. 思科模拟器CISCO/华为模拟器ENSP配置一个完整的校园网(网络安全、数据冗余)
  17. 类文件解析003-解析常量池
  18. 小米mix2s支持html,小米MIX2S支持无线充电吗?米粉欢呼!
  19. mysql8.0下载 windows64位
  20. 边缘保留滤波(EPF)

热门文章

  1. 光端机的原理和使用范围
  2. 【渝粤教育】国家开放大学2018年春季 8634-21TAndroid智能手机编程 参考试题
  3. 【渝粤教育】国家开放大学2018年春季 8659-22T计算机平面设计(1)(2) 参考试题
  4. ZigBee网络角色 拓扑结构 无线模块组网典型应用
  5. tcp java实例_实现了基于TCP的Java Socket编程实例代码
  6. 【模式识别】K均值聚类算法应用实验报告及MATLAB仿真
  7. 6000毫安以上智能手机_三星超长续航神机,6000毫安+128GB,上市半年不到跌至1499...
  8. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)
  9. 低版本mysql utf8mb5_记住:永远不要在 MySQL 中使用 UTF-8
  10. mysql+表中公共信息,計算mysql中兩個表之間的公共行數