Java Spring AOP
AOP:Aspect Oriented Programming 面向切面编程,4) AOP采取横向抽取机制,主要用于事务管理、性能监视、安全检查、缓存 、日志。
AspectJ是一个基于Java语言的AOP框架
AOP实现原理
1.jdk动态代理Proxy实现:需要接口+实现类
2.cglib包:只需要实现类
概念 | 描述 |
---|---|
target | 目标类,需要被代理的类 |
Joinpoint | 连接点,可以被拦截的方法 |
PointCut | 已经被增强的连接点 |
advice | 通知增强代码 |
Weaving | 织入,把增强代码advice应用到target上 |
proxy | 代理类 |
aspect | 切面,pointcut和advice的结合 |
例子:
相关包
spring-framework-3.0.2.RELEASE-dependencies\org.aspectj\com.springsource.org.aspectj.weaver\1.6.8.RELEASE
xml配置AOP
<beans><!-- 配置UserService,和AOP无关,普通注入--><bean id="userService" class="UserServiceImpl"></bean><!-- 配置切面对象,advice--><bean id="myAspect" class="MyAspect"></bean><!-- 配置 aop --><aop:config><aop:aspect ref="myAspect"><!-- aop:指定切面--><!--定义一个切入点--><aop:pointcut id="myPointcut" expression="execution(* com.gyf.service.UserServiceImpl.*(..))"/><!-- 配置前置通知...--><aop:before method="myBefore" pointcut-ref="myPointcut" /></aop:aspect></aop:config>
</beans>
注解配置AOP
bean.xml配置
<!--扫描注解-->
<context:component-scan base-package="demo"/>
<!--AOP注解生效-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Service("userService")//替代xml里的bean
public class UserServiceImpl implements IUserService{}@Component//替代xml里的bean
@Aspect//替代<aop:config><aop:aspect ref="myAscpect">
public class MyAspect{}@Before("execution(* demo.UserServiceImpl.*(..))")//替代<aop:pointcut>
public void myBefore(JoinPoint joinPoint){}
Java Spring AOP相关推荐
- java spring aop 注解包_Spring AOP 注解配置实例
Spring AOP注解例子 一:导入相关jar包. 首先导入Spring的相关包(这里就不多说了,我这里是3.2.4版本的) 然后导入AOP注解的相关包(不是spring的包)aspectjrt-1 ...
- 从零开始学 Java - Spring AOP 拦截器的基本实现
一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过 ...
- java任务调度定时器,从零开始学 Java - Spring 使用 Quartz 任务调度定时器
生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...
- 利用Spring AOP与JAVA注解为系统增加日志功能
Spring AOP一直是Spring的一个比较有特色的功能,利用它可以在现有的代码的任何地方,嵌入我们所想的逻辑功能,并且不需要改变我们现有的代码结构. 鉴于此,现在的系统已经完成了所有的功能的开发 ...
- AspectJ和Spring AOP(java动态代理和CGLIB)简单介绍
1.AOP介绍 什么是AOP:AOP就是面向切面编程.使用的背景: 1)我们的振隆维护着一千个方法,一天老板让振隆把这一千个方法都要加上事务代码(统一代码) 2)振隆咬咬牙,添加了一个新的方法,然后让 ...
- Java Spring的IoC和AOP的知识点速记
Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的. Spring Bean装配 1. IOC的概念以及在Spri ...
- java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxx ...
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程G
第 5 章 Spring AOP: Spring之面向方面编程 5.1. 概念 面向方面编程 (AOP) 提供从另一个角度来考虑程序结构以完善面向对象编程(OOP). 面向对象将应用程序分解成 各个层 ...
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程
第 5 章 Spring AOP: Spring之面向方面编程 5.1. 概念 面向方面编程 (AOP) 提供从另一个角度来考虑程序结构以完善面向对象编程(OOP). 面向对象将应用程序分解成 各个层 ...
最新文章
- 在Win 2003中配置ASP.net环境
- Java开发神器Lombok的使用与原理
- 数独高阶技巧入门之四:简单异数链
- 037_Dropdown下拉菜单
- An In-Depth Look at the HBase Architecture--转载
- 把tensor转为numpy_如何在TensorFlow中将张量转换为numpy数组?
- 结合Boost.Geometry和Boost.Assign以及Boost.Range和Boost.Tuple的例子
- 工业级以太网交换机跟普通商用网络交换机有啥区别?
- 防删库实用指南 | 只需一步,快速召回被误删的表
- javaScript命名规范
- android 传感器的学习
- easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
- 认真学习系列:计算机组成原理——哈工网课笔记
- Android Studio 应用目录结构说明
- SimpleDateFormat多线程问题
- 计算机永远无法超越人类——从李世石与阿尔法的人机大战中想到的
- SpringCloud 之分布式 CAP 定理
- 直播软件测试用例,【专家专栏】李雪 | 直播通用测试方法—如何进行直播测试...
- 去掉电脑桌面图标中的箭头图标
- cx oracle 输出中文,输出cx语言
热门文章
- docker $PWD路径_基于Docker搭建Nacos集群
- Python爬虫辅助库BeautifulSoup4用法精要
- Python在线考试系统防作弊功能的思路和实现
- python redis list_Python操作redis实例小结【String、Hash、List、Set等】
- android实例化一个活动,Android活动 - 无法实例化活动组件信息
- 抽象数据类型和Python类的基础
- springboot 对象 空指针_C++ this指针的理解和作用
- 怎么保存在界面输入的内容_还在担心忘记密码?使用这款软件轻松找回浏览器中保存的密码...
- linux 774是什么权限,Linux权限
- VScode 知识点查阅