Spring, 基于自动代理实现aop

原创 2015年07月07日 15:57:27

与自己写代理实现aop(http://blog.csdn.net/u012994584/article/details/46790267)不同的是:
ApplicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="studentDaoImpl" class="net.wchdai.spring.dao.impl.StudentDAOImpl"/>

<bean id="studentProxy" class="net.wchdai.spring.proxy.MyStudentProxy"/>
<!-- 
<bean id="studentDaoPointCut" class="org.springframework.aop.support.JdkRegexpMethodPointcut">
    <property name="pattern" value=".*Student"></property>
</bean>
<bean id="studentDaoProxyFactory" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="target" ref="studentDaoImpl"></property>
    <property name="interceptorNames" value="studentDaoAdvisor"></property>
    <property name="proxyInterfaces" value="net.wchdai.spring.dao.StudentDAO"></property>
</bean> -->

<bean id="studentDaoAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
    <property name="advice" ref="studentProxy"></property>
    <property name="pattern" value=".*Student"></property>
</bean>

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"></bean>

</beans>

单元测试:

package net.wchdai.spring.test;

import net.wchdai.spring.dao.StudentDAO;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import junit.framework.TestCase;

public class StudentAOPTest extends TestCase{
    public void testAOPProxy(){
        ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
//      StudentDAO sdao=(StudentDAO)ctx.getBean("studentDaoProxyFactory");
        StudentDAO sdao=(StudentDAO)ctx.getBean("studentDaoImpl");
        sdao.saveStudent();
    }
}

执行结果:

before
StudentDAOImpl save student
afterReturning

自动代理优点:减少了代码,少写了PointCut & ProxyFactory

相关文章推荐

JavaEE spring自动实现AOP代理

  • 2016年10月16日 21:51
  • 3.93MB
  • 下载

【框架】[Spring]AOP拦截-三种方式实现自动代理

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 这里的自动代理,我讲的是自动代理bean对象,其实就是在xml中让我们不用配置代理工...

Spring Mvc那点事---(30)Spring Mvc传统AOP自动代理实现

Spring 传统AOP可以实现自动代理,不需要专门指定代理,可以在类生成的时候自动代理,有两种方式实现自动代理,基于Bean名称的自动代理 BeanNameAutoProxyCreator和基于...

JavaEE spring半自动实现AOP代理

  • 2016年10月16日 21:18
  • 2.48MB
  • 下载

【Spring AOP】自动创建代理

Spring一般创建目标类代理通过ProxyFactoryBean,但是mei'ge

18、spring AOP自动创建代理bean

18、spring AOP自动创建代理bean自动创建了代理bean的作用就在于,简化代理bean的手动创建,免得代理bean在配置文件中堆积如山。这里使用上一个例子的demo17、spring AO...

Spring AOP 自动代理执行增强

基本类package com.advice;/** * @author Duoduo * @version 1.0 * @date 2017/4/25 23:41 */ public clas...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring, 基于自动代理实现aop
举报原因:
原因补充:

(最多只允许输入30个字)