框架应用:Spring framework - AOP技术

基础概念

  线程中的方法栈

    

    java程序虚拟机启动时会载入程序码,虚拟机会为每一条正在运行的线程生成一个方法调用栈,线程以方法运行为执行单位.

AOP概念以及目标

  AOP是面向切面编程,其实就是在不修改代码模块的情况下在你的模块中嵌入一些其他的代码.

  目标是统一模块,从而抽取并消除一些散落在系统中块状代码(非逻辑业务).

AOP术语图解

       

  连接点:就是所有线程的方法,可以作为嵌入代码的候选对象;

  切入点:最后被选为嵌入代码的对象;

  切面:实现嵌入的对象;

  增强通知:嵌入的内容(一些被定义的方法,包括前置通知,后置通知,异常通知,最终通知,环绕通知)

  织入:嵌入代码的整个过程被叫做织入

AOP原理

  AOP的出现是有了在业务代码中嵌入一些非业务代码,如日志通知,如连接数据库等事务.

  

  1.修改源代码,过度耦合无关业务的代码;

  2.无论是使用继承方式还是接口实现方式添加无关业务的代码,都会使对象间过度耦合;

  3.使用动态代理模式来实现AOP,让容器去帮我们进行代码嵌入.

AOP使用解析

  1.导入jar包(包括core包和aop包)

    

  2.创建spring核心配置文件,导入aop约束

    

  3.配置bean对象,注入至容器中,并配置切面与切点

    

    注:常用的表达式

    execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

    (1)execution(* com.harry.aop.service.UserService.add(..))

    (2)execution(* com.harry.aop.service.UserServic.*(..))

    (3)execution(* *.*(..))

    (4) 匹配所有save开头的方法 execution(* save*(..))

  

时间: 2024-08-22 04:32:21

框架应用:Spring framework - AOP技术的相关文章

Java开发工程师(Web方向) - 04.Spring框架 - 第3章.AOP技术

Spring框架 - AOP概述 笔记https://my.oschina.net/hava/blog/758873Spring框架 - AOP使用 笔记https://my.oschina.net/hava/blog/758881 AOP技术单元测试 返回 本次得分为:7.00/7.00, 本次测试的提交时间为:2017-09-11, 如果你认为本次测试成绩不理想,你可以选择再做一次. 1 单选(2分) 如下关于AOP的描述中错误的是: 得分/总分 A. AOP可以对代码进行解耦: B. A

Spring Framework AOP详解

此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决.一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习SpringAOP相关的内容.本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智. 对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用情况 监控部分重要函数,若抛出指定的异常,需要以短信或邮件方式通知相关人员 金

Spring框架简介 Spring Framework Introduction

Introduction The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application l

Spring Framework基础学习

Spring Framework基础学习 Core support for dependency injection,transaction management,web applications,data access,messaging,testing and more 推荐的官方文章:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/index.html 一.Instrod

Spring框架学习(9)AOP技术理解与使用

内容源自:AOP技术理解与使用 一.什么是AOP? aop技术是面向切面编程思想,作为OOP(面向对象编程)的延续思想添加到企业开发中,用于弥补OOP开发过程中的缺陷而提出的编程思想. AOP底层也是面向对象:只不过面向的不是普通的Object对象,而是特殊的AOP对象.AOP的关注点是组成系统的非核心通用服务模块(比如登录检查等),相对于普通对象,aop不需要通过继承.方法调用的方式来提供功能,只需要在xml文件中以引用的方式,将非核心服务功能引用给需要改功能的核心业务逻辑对象或方法中.最终实

Spring Framework(框架)整体架构 变迁

Spring Framework(框架)整体架构 2018年04月24日 11:16:41 阅读数:1444 标签: Spring框架架构 更多 个人分类: Spring框架 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wd2014610/article/details/80061808 Spring 在这个Spring框架大行其道的软件开发世界里,尚有很多工程师天天在用,但是从来不会去思考下,Spring框架的整体架构到底是什么样子的啊.

Spring Framework(框架)整体架构

Spring在这个Spring框架大行其道的软件开发世界里,尚有很多工程师天天在用,但是从来不会去思考下,Spring框架的整体架构到底是什么样子的啊.一.首先通过维基百科看看什么是Spring框架维基百科的地址:Spring框架的维基百科 二.看一下官网的介绍Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache License 2.0开源许可协议的形式发布,也有.NET平台上的移植版本.该框架基于 Expert O

java框架篇---spring AOP 实现原理

什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入封装.继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合.当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力.也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系.例如日志功能.日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无

不基于框架(spring) 的方法监控技术

问题描述 为了方便对Java代码执行效率调优,目前已开发了基于spring aop方式的各函数执行监控. 但其缺点是必须依赖于spring,对于非spring管控的对象则无法监控. 期待解决思路 期望可以开发出不依赖于spring的监控,可考虑从classloader .jvm .jmx等底层技术去实现不依赖于第三方框架的解决方案 问题解决责任人 问题提出者:苏印 问题解决责任人:苏印 王加平 王伟 余波 Create by Ian.Su 20170804 解决方案如下 技术方案: JVM TI