1.配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans> <bean id="log" class="com.gc.action.LogAround"></bean>
<bean id="timeBook" class="com.gc.action.TimeBook"></bean> <!-- logaround -->
<bean id="logProxy" class="org.springframework.aop.framework.ProxyFactoryBean"> //该配置也可以去掉
<property name="proxyInterfaces">
<value>com.gc.action.ITimeBook</value>
</property> <property name="target">
<ref bean="timeBook"></ref>
</property> <!-- 指定要代理的类 -->
<property name="interceptorNames">
<list>
<value>log</value>
</list>
</property> </bean>
</beans>

2.LogAround

package com.gc.action;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation; public class LogAround implements MethodInterceptor { @Override
public Object invoke(MethodInvocation arg0) throws Throwable {
// TODO Auto-generated method stub Object result=null; try
{
System.out.println("aop 之前");
result=arg0.proceed(); return result;
} finally{ System.out.println("aop 之后"); } } }

3.TimeBook

package com.gc.action;

public class TimeBook implements ITimeBook {

    @Override
public void doAudit(String name) {
// TODO Auto-generated method stub
System.out.println("laaaaaaaaaaaaa");
} }

4.ITimeBook

package com.gc.action;

public interface ITimeBook {

    public void doAudit(String name);
}

5. 测试

  ApplicationContext context=new FileSystemXmlApplicationContext("config-aop.xml");
ITimeBook tb=(ITimeBook)context.getBean("logProxy");
tb.doAudit("xiaox");

SpringMvc 面向切面1的更多相关文章

  1. spring面向切面编程示例(xml配置形式vs@注解形式)

    一.xml配置形式 1.在Spring配置文件中增加面向切面配置当调用com.activemq.service.impl.ConsumerServiceImpl接口实现类的任意方法时执行切面类中的方法 ...

  2. SpringMVC---依赖注入与面向切面

    1.依赖注入与面向切面 1.1.出现背景 ——如何简化java开发? 其中很重要的一点是“组件化”. ——如何更好的“组件化”? 松耦合,以及尽可能的让组件专注于本身. ——Spring框架的目的也只 ...

  3. 浅谈Spring AOP 面向切面编程 最通俗易懂的画图理解AOP、AOP通知执行顺序~

    简介 我们都知道,Spring 框架作为后端主流框架之一,最有特点的三部分就是IOC控制反转.依赖注入.以及AOP切面.当然AOP作为一个Spring 的重要组成模块,当然IOC是不依赖于Spring ...

  4. Spring框架——AOP面向切面编程

    简介 AOP练习 使用动态代理解决问题 Spring AOP 用AspectJ注解声明切面 前置后置通知 利用方法签名编写AspectJ切入点表达式 指定切面的优先级 基于XML的配置声明切面 Spr ...

  5. Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)

    在Spring基础 - Spring简单例子引入Spring的核心中向你展示了AOP的基础含义,同时以此发散了一些AOP相关知识点; 本节将在此基础上进一步解读AOP的含义以及AOP的使用方式.@pd ...

  6. 面向过程(POP)、面向对象(OOP)、面向接口(IOP)、面向切面(AOP)

    面向过程:典型的是C/C++的结构体,结构体里只有变量,没有处理变量的方法,需要专门编写处理变量的方法. 面向对象:ArrayList<Integer> list=new ArrayLis ...

  7. AOP 面向切面编程, Attribute在项目中的应用

    一.AOP(面向切面编程)简介 在我们平时的开发中,我们一般都是面对对象编程,面向对象的特点是继承.多态和封装,我们的业务逻辑代码主要是写在这一个个的类中,但我们在实现业务的同时,难免也到多个重复的操 ...

  8. javascript面向切面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. AOP面向切面编程的四种实现

     一.AOP(面向切面编程)的四种实现分别为最原始的经典AOP.代理工厂bean(ProxyFacteryBean)和默认自动代理DefaultAdvisorAutoProxyCreator以及Bea ...

随机推荐

  1. Codeforces Round #448 (Div. 2) A. Pizza Separation【前缀和/枚举/将圆(披萨)分为连续的两块使其差最小】

    A. Pizza Separation time limit per test 1 second memory limit per test 256 megabytes input standard ...

  2. Python的程序结构[7] -> 生成器/Generator -> 生成器浅析

    生成器 / Generator 目录 关于生成器 生成器与迭代器 生成器的建立 通过迭代生成器获取值 生成器的 close 方法 生成器的 send 方法 生成器的 throw 方法 空生成器的检测方 ...

  3. 【CodeForces 830C】奇怪的降复杂度

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60638239 description 有n棵竹子 ...

  4. .Net中的不可变集合(Immutable Collection)简介

    今天发现MS在Nuget上发布了一个Immutable Collection的程序集,提供了对不可变对象的集合的支持. 简单的看了一下,貌似支持的还比较全: ImmutableArray<T&g ...

  5. VisualStudio Shell简介 — 集成插件

    Visual Studio Shell只是提供了一个内核,我们还需要在其基础上补充功能,从而实现我们自己的IDE.Visual Studio Shell的插件开发和Visual Studio插件开发是 ...

  6. alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案

    在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久. 官网的一段话,可以理解下 http:// ...

  7. Proxy server got bad address from remote server

    在ArcMap中,在GIS Servrvers中,打开已经设置好的服务器时,出现下面的弹窗问题. Proxy server got bad address from remote server(ver ...

  8. JAVA常见算法题(四)

    package com.xiaowu.demo; /** * 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * * * @author WQ * */ public class ...

  9. 项目笔记:导出Excel功能设置导出数据样式

    /** * 导出-新导出 * * @return * @throws IOException */ @OperateLogAnn(type = OperateEnum.EXPORT, hibInter ...

  10. ES6里关于正则表达式的拓展

    一.构造函数 在 ES5 中,RegExp构造函数的参数有两种情况. 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag) var regex = new RegExp('xy ...