要进行AOP编程,首先我们要在spring的配置文件中引入aop命名空间:

===================

Spring提供了两种切面声明方式,实际工作中我们可以选用其中一种:
1. 基于XML配置方式声明切面。
2. 基于注解方式声明切面(建议使用)。

===================

基于基于XML配置方式声明切面

1. 首先先定义一个切面类MyAspect(可自定义一个bean类进行测试)

-------------------

2. 然后在XML配置文件中进行配置

* pointcut节点为切入点,其expression属性值指明需拦截的bean方法,属性格式参考API
* 其他节点如<aop:before/>等必须设置pointcut-ref属性

-------------------

3. 自定义测试类测试bean方法,到这里基本完成

===================

基于基于注解方式声明切面
 
1. 首先先定义一个切面类MyAspect,并标记注解@Aspect,该注解类各通知方法均加上相应注解

-------------------

2. 通过反射技术,XML只需加上一句<aop:aspectj-autoproxy/> 即可启动配置器自行配制标记注解的切面类,此时XML配置如下

-------------------

3. 自定义测试类测试bean方法,到这里AOP简单实例基本完成

版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring笔记——使用Spring进行面向切面(AOP)编程的更多相关文章

  1. 解析Spring第三天(面向切面AOP)

    面向切面:AOP 在不修改源代码的基础上,对方法进行增强.AOP的底层原理就是代理技术(第一种:jdk的动态代理(编写程序必须要有接口).第二种:cglib代理技术(生成类的子类).如果编写的程序有借 ...

  2. AOP 面向切面的编程

    一.面向切面的编程需求的产生 代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀.每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点. 代码分散: 以日志需求为例,只是为了 ...

  3. Spring框架学习笔记(2)——面向切面编程AOP

    介绍 概念 面向切面编程AOP与面向对象编程OOP有所不同,AOP不是对OOP的替换,而是对OOP的一种补充,AOP增强了OOP. 假设我们有几个业务代码,都调用了某个方法,按照OOP的思想,我们就会 ...

  4. Spring框架使用(控制反转,依赖注入,面向切面AOP)

    参见:http://blog.csdn.net/fei641327936/article/details/52015121 Mybatis: 实现IOC的轻量级的一个Bean的容器 Inversion ...

  5. Spring框架系列(五)--面向切面AOP

    背景: 当需要为多个不具有继承关系的对象引入一个公共行为,例如日志.权限验证.事务等功能时,如果使用OOP,需要为每个对象引入这些公共 行为.会产生大量重复代码,并且不利用维护.AOP就是为了解决这个 ...

  6. Spring基础(二)_面向切面(AOP)

    面向切面编程 面向切面编程[AOP,Aspect Oriented Programming]:通过预编译方式和运行期间动态代理实现程序功能的统一维护的技术.AOP 是 Spring 框架中的一个重要内 ...

  7. SpringInAction读书笔记--第4章面向切面

    1.什么是面向切面编程 在软件开发中,散布于应用中多处的功能被称为横切关注点,这些横切关注点从概念上是与应用的业务逻辑相分离的,但往往分直接嵌入到应用的业务逻辑之中,把这些横切关注点与业务逻辑相分离正 ...

  8. Java 面向切面 AOP

    参考: :http://www.blogjava.net/supercrsky/articles/174368.html AOP: Aspect Oriented Programming 即面向切面编 ...

  9. Spring笔记1——Spring起源及其核心技术

    Spring的作用 当我们使用一种技术时,需要思考为什么要使用这门技术.而我们为什么要使用Spring呢?从表面上面SSH这三大框架中,Struts是负责MVC责任的分离,并且提供为Web层提供诸如控 ...

随机推荐

  1. ABAP后台JOB数量控制

    数据库视图:V_OP 可以查看JOB信息 FORM sub_check_job. * 通过JOB名称,控制活动JOB的数量 , jobname TYPE btcjob , strtdate TYPE ...

  2. [uwp开发]数据绑定那些事(1)

    现在是msp候选人,是时候写点技术博客来加分了(实则是个人的心得体会). 注:以下都是个人理解,错误在所难免,欢迎批评指正 以前接触过WPF,只会简单的一些操作,现在在逐渐学习UWP(Universa ...

  3. c++ goto的使用

    c++ goto 语句的使用 1.定义一个类似标签的东西lable 2.使用goto关键字,跳转到lable, goto lable #include <iostream> #includ ...

  4. Oracle EBS中查询Profile的各种SQL【转载】

    1.List E-Business Suite Profile Option Values For All Levels SELECT p.profile_option_name SHORT_NAME ...

  5. 团队作业php

    <?php$kouwei=$_GET["select"];$daxiao=$_GET["RadioGroup1"];$peiliao=$_GET[&quo ...

  6. l2tp vpn客户端

    1. 添加PPA   sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp   2. 刷新软件包缓存   sudo apt-get upd ...

  7. Eclipse Kepler中配置JadClipse

    Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的插件JadClipse ...

  8. 浏览器不支持HTML5

    有些浏览器并不支持HTML5中的新增元素,如IE8或更早版本.想要应用样式,可以头部标记<head>中加入下面JavaScript代码 <html> <head> ...

  9. UVALive - 6955 Finding Lines 随机算法

    题目链接: http://acm.hust.edu.cn/vjudge/contest/126968#problem/F 题意 给你n个点,问是否有>=p/100*n个点共线(p>=20& ...

  10. jQuery中的Deferred-详解和使用

    首先,为什么要使用Deferred? 先来看一段AJAX的代码: var data; $.get('api/data', function(resp) { data = resp.data; }); ...