框架应用:Spring framework (二) - AOP技术
基础概念
线程中的方法栈
java程序虚拟机启动时会载入程序码,虚拟机会为每一条正在运行的线程生成一个方法调用栈,线程以方法运行为执行单位.
AOP概念以及目标
AOP是面向切面编程,其实就是在不修改代码模块的情况下在你的模块中嵌入一些其他的代码.
目标是统一模块,从而抽取并消除一些散落在系统中块状代码(非业务逻辑).
AOP术语图解
连接点:就是所有线程的方法,可以作为嵌入代码的候选对象;
切入点:最后被选为嵌入代码的对象;
切面:实现嵌入的对象;
增强通知:嵌入的内容(一些被定义的方法,包括前置通知,后置通知,异常通知,最终通知,环绕通知)
织入:嵌入代码的整个过程被叫做织入
AOP原理
AOP的出现是有了在业务代码中嵌入一些非业务代码,如日志通知,如连接数据库等事务.
1.修改源代码,过度耦合无关业务的代码;
2.无论是使用继承方式还是接口实现方式添加无关业务的代码,都会使对象间过度耦合;
3.使用动态代理模式来实现AOP,让容器去帮我们进行代码嵌入.
AOP使用解析(xml)
1.导入jar包(包括core包和aop包)
Spring的AOP是基于aspectj框架的,所以在导包时需要导入aspectj的支持包
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*(..))
AOP使用解析(注解)
1.开启aop功能扫描
2.创建bean来作为切面类和切点类
3.创建切面切点定义
这里,AOP的内容已经描述完毕,但由于spring的基础是IoC和AoP,所以之后还是会反复出现.
框架应用:Spring framework (二) - AOP技术的更多相关文章
- 框架应用:Spring framework (一) - IoC技术
IoC概念以及目标 IoC就是让原本你自己管理的对象交由容器来进行管理,其主要的目的是松耦合. IoC发展史 既然IoC的目标是为了松耦合,那它怎么做到的? 最后目标:降低对象之间的耦合度,IoC技术 ...
- Spring框架的核心功能之AOP技术
技术分析之Spring框架的核心功能之AOP技术 AOP的概述 1. 什么是AOP的技术? * 在软件业,AOP为Aspect Oriented Programming的 ...
- Spring框架学习(9)AOP技术理解与使用
内容源自:AOP技术理解与使用 一.什么是AOP? aop技术是面向切面编程思想,作为OOP(面向对象编程)的延续思想添加到企业开发中,用于弥补OOP开发过程中的缺陷而提出的编程思想. AOP底层也是 ...
- Spring Framework 之AOP
Spring Framework 之AOP 目录 Spring Framework 之AOP 问题 AOP概述 AOP知识 1.连接点(Joinpoint) 2.切点(PointCut) 3.增强(A ...
- spring学习(二) ———— AOP之AspectJ框架的使用
前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以 ...
- Spring 框架的核心功能之AOP技术
1. AOP 的概述 AOP, Aspect Oriented Programming, 面向切面编程; 通过预编译方式和运行期动态代理实现程序功能的统一维护的技术; AOP 采取横向抽取机制,取代了 ...
- Spring框架简介 Spring Framework Introduction
Introduction The Spring Framework provides a comprehensive programming and configuration model for m ...
- 《Java Spring框架》Spring切面(AOP)配置详解
1. Spring 基本概念 AOP(Aspect Oriented Programming)称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2 ...
- JavaWeb_(Spring框架)认识Spring中的aop
1.aop思想介绍(面向切面编程):将纵向重复代码,横向抽取解决,简称:横切 2.Spring中的aop:无需我们自己写动态代理的代码,spring可以将容器中管理对象生成动态代理对象,前提是我们对他 ...
随机推荐
- python开源项目及示例代码(转)
本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...
- Apache Storm 1.1.0 中文文档 | ApacheCN
前言 Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ...
- Servlet中Response对象应用2(输出随机验证码图片)
预期结果如图: 可用于登陆界面的验证 需要使用random类和绘画相关的几个类.以及imageio的内容. import java.awt.*; import java.awt.image.Buffe ...
- Servlet与JSP内置对象的对应关系、Servlet获取表单、Servlet路径跳转
项目的根目录指的是webroot: 服务器内部跳转: 或者使用../:“..”代表回到上一级目录
- 【Linux部署 · JDK】在linux系统安装jdk
1,检查是否安装jdk echo $JAVA_HOME 或者java -version 2,查看操作系统,很明显这是一个相当old的操作系统,i686是32位操作系统. 3,在oracle ...
- ThinkPHP自定义分页模板
TpPageHelper.php <?php namespace tool; use think\Paginator; class TpPageHelper extends Paginator ...
- ABP从入门到精通(6):快速重命名解决方案
SolutionRenamer SolutionRenamer 是一个解决方案快速重命名工具.经测试重命名一个全新asp.net zero core项目(ABP asp.net zero,.net c ...
- selenium元素定位不到之iframe
我们在使用selenium的18中定位方式的时候,有时会遇到定位不上的问题,今天我们就来说说导致定位不上的其中一个原因---iframe 问题描述:通过firebug查询到相应元素的id或name等, ...
- hdu2546 01背包 重学背包
题意:给出菜的价钱和自己的余额.使自己余额最少,注意余额大于5的情况可以买任意的菜. 思路:小于5的余额不能买菜,直接输出,大于五的余额,留下5元买最贵的菜,剩下的余额进行01背包,将剩下的余额减去0 ...
- Angular+ionic2 web端 启动程序出现短暂 白屏或黑屏 的处理小妙招
在ionic2项目启动是会出现短暂的白屏或者黑屏,虽然很短,但是用户体验不太好.上网查了相关的资料,都是针对打包APP的解决办法,针对浏览器端使用的项目没有效果,所以自己写了样式,巧妙的避开这个问题, ...