撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>

springMVC版本是4.3.7.RELEASE,pom.xml中添加AOP的依赖:

<dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.3.7.RELEASE</version>
</dependency>
<dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.9</version>
</dependency>

在org.taian.web包下新建LogAspect.java

@Aspect
@Component
public class LogAspect {@Before("execution(* org.taian.web.Test1.*(..)) && !execution(* org.taian.web.Test1.getUsers())")public void log(){System.oug.println("before logs");}
}

在spring-web.xml配置文件中添加配置:

  <!-- AOP 注解方式 ;定义Aspect --><!-- 激活组件扫描功能,在包"org.taian.web及其子包下面自动扫描通过注解配置的组件--><context:component-scan base-package="org.taian.web"/><!-- 启动AspectJ支持   只对扫描过的bean有效--><aop:aspectj-autoproxy proxy-target-class="true" />

    @Before("execution(* org.taian.web.Test1.*(..)) && !execution(* org.taian.web.Test1.getUsers())") //该标签声明次方法是一个前置通知:在目标方法开始之前执行
    @After后置通知(无论方法是否发生异常都会执行,所以访问不到方法的返回值)
    @AfterReturning返回通知(在方法正常结束执行的代码),返回通知可以访问到方法的返回值!
    @AfterThrowing异常通知(方法发生异常执行的代码),可以访问到异常对象;且可以指定在出现特定异常时执行的代码
    @Around环绕通知(需要携带类型为ProceedingJoinPoint类型的参数),环绕通知包含前置、后置、返回、异常通知;ProceedingJoinPoin 类型的参数可以决定是否执行目标方法,且环绕通知必须有返回值,返回值即目标方法的返回值

    在execution表达之中可以使用逻辑判断,来实现方法的排除

SpringMVC使用AOP相关推荐

  1. springmvc 配置aop

    2019独角兽企业重金招聘Python工程师标准>>> 一: <?xml version="1.0" encoding="UTF-8"? ...

  2. springMVC的Aop

    Aop是面向切面编程:是通过预编译方式和运行器动态代理实现程序功能的统一维护技术.Aop是oop的延续,是spring框架中的重要内容,是函数编程的一种衍生泛型,利用AOP可以对业务逻辑的各个部分进行 ...

  3. 利用SpringMVC的AOP来实现后台系统的操作日志记录

    最近在项目中要求把后台的一些关键操作记录下来,想了好半天能想到的也就那两三种方式,要么就是写一个拦截器,然后再web.xml里面进行配置,要么就是就是在每个需要记录操作日志的代码里面进行拦截,最后我选 ...

  4. 【Java Web开发指南】深入浅出Spring和SpringMVC

    文章目录 1 spring 2 springmvc 3 AOP与IOC 1 spring spring是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(spri ...

  5. Spring开启注解AOP的支持放置的位置

    放在springmvc的aop,需要在springmvc的配置文件中写开启aop,而不是spring的配置文件 最近使用aop来记录controller的日志. 但是发现没有起作用. 后来发现是因为我 ...

  6. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  7. Spring AOP 的日志管理实现

    2019独角兽企业重金招聘Python工程师标准>>> 在学习Spring框架的历程中,最重要的是要理解Spring的IOC和AOP了,不但要学会怎么用,最好是知道它是怎么实现的,通 ...

  8. (转)SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72231763 之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBa ...

  9. 史上最细IDEA搭建基于SSM(springmvc+spring+mybatis)

    需要准备的环境: idea 2019.3.2 jdk1.8 Maven 3.3.9 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 注:配置完ide红线报错没关系!可以run! ...

最新文章

  1. python常见的数据类型_Python常见数据类型及操作
  2. influxDB+grafana 日志监控平台(Golang)
  3. 【模型解读】GoogLeNet中的inception结构,你看懂了吗
  4. android 设置窗口透明效果,android - 如何将对话框窗口背景设置为透明,而不影响其边距...
  5. Deep learn toolbox:CNN BP求导解析
  6. Linux系统查看位数和内存
  7. php变量前下滑_PHP变量
  8. [剑指offer]面试题第[56-2]题[JAVA][数组中数字出现的次数][状态机][hashmap][位运算]
  9. 异步选择WSAAsyncSelect
  10. Mac OSX Android 开发环境 模拟器报错
  11. CDA LEVEL I分数占比解读,看懂这些,考试更容易拿分
  12. mac显示所有文件后缀名
  13. unity3d人物跳_Unity人物跳跃效果
  14. 防火墙的访问控制策略
  15. 南京艺术学院计算机考研,南京艺术学院考研难吗?一般要什么水平才可以进入?...
  16. 准备学python用什么电脑_超准《IQ测试》,在线《智商测试》
  17. Java多线程 - Runnable接口和Callable接口的区别
  18. UnityShader[4]几何着色器与可交互草地
  19. 国内外SNS比较分析
  20. 【测序发展史】一代、二代、三代测序发展

热门文章

  1. ORACLE修改表空间方法
  2. 微信web开发者工具调试
  3. jQuery的this $this $(this)
  4. php并行运算,php多进程并行执行脚本的代码
  5. 手机鸿蒙公测选择一个应用,鸿蒙系统公测半个月,首批“差评”很难听,但是却也很真实...
  6. 惠普服务器bios查看硬件属性,查看硬件信息
  7. java 最大子数组_求一个数组中子数组的最大和算法(Java实现)
  8. vue路由跳转权限_vue权限路由实现方式总结
  9. html怎么用ui打开,HTML5教程 如何使用原生UI
  10. 计算机主板上电源怎么插,教大家电脑主板上的电源开关插头怎么接