SSM-Spring-14:Spring中默认自动代理DefaultAdvisorAutoProxyCreator

SSM-Spring-14:Spring中默认自动代理DefaultAdvisorAutoProxyCreator

大家好,又见面了,我是全栈君。

 

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

默认自动代理DefaultAdvisorAutoProxyCreator

本处没有什么要讲的,放原代码

  ISomeService接口:

 

package cn.dawn.day17atuo01;

/**
 * Created by Dawn on 2018/3/8.
 */
public interface ISomeService {
    public void insert();
    public void delete();
    public void select();
    public void update();
}

 

  SomeServiceImpl类继承上面的那个接口:

 

package cn.dawn.day17atuo01;


/**
 * Created by Dawn on 2018/3/8.
 */
public class SomeServiceImpl implements ISomeService{

    public void insert() {
        System.out.println("insert ok");
    }

    public void delete() {
        System.out.println("delete ok");

    }

    public void select() {
        System.out.println("select ok");

    }

    public void update() {
        System.out.println("update ok");

    }
}

 

  LoggerBefore类,做了前置增强

 

package cn.dawn.day17atuo01;


import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

/**
 * Created by Dawn on 2018/3/5.
 */
/*前置增强*/
public class LoggerBefore implements MethodBeforeAdvice {
    public void before(Method method, Object[] objects, Object o) throws Throwable {
        System.out.println("日志记录");
    }
}

 

  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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--要增强的对象-->
    <bean id="service" class="cn.dawn.day17atuo01.SomeServiceImpl"></bean>
    <!--增强的内容-->
    <bean id="myadvice" class="cn.dawn.day17atuo01.LoggerBefore"></bean>
    <!--顾问-->
    <bean id="myadvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <property name="advice" ref="myadvice"></property>
        <!--<property name="mappedNames" value="do*"></property>-->
        <!--<property name="pattern" value=".*do.*"></property>-->
        <property name="patterns" value=".*select.*"></property>
    </bean>
    <!--默认自动代理-->
    <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"></bean>

</beans>

 

  必须要有顾问,没有不可以,默认自动代理里面不用实现参数,他自动匹配

 

  单测方法:

 

package cn.dawn.day17auto01;


import cn.dawn.day17atuo01.ISomeService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by Dawn on 2018/3/3.
 */
public class test20180312 {
    @Test
    /*默认自动代理*/
    public void t01(){
        ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext-day17auto01.xml");
        ISomeService service = (ISomeService) context.getBean("service");

        service.select();

    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107657.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于CultureInfo

    关于CultureInfoCultureInfo提供有关特定区域性的信息(如区域性的名称、书写系统和使用的日历)以及如何设置日期和排序字符串的格式。在ASP.NET2.0中提供多语言转换和多样式主题转换功能中,经常用到CultureInfo.可用CultureInfo.Name获得区域性名称,CultureInfo的默认是.NETFramework的安装版本。改变CultureInfo值方法为可在Global….

    2022年6月19日
    28
  • releasecapture 函数_整理怎么解释

    releasecapture 函数_整理怎么解释setCapture一.什么是setCapture函数?MDN解释:在处理一个mousedown事件过程中调用这个方法来把全部的鼠标事件重新定向到这个元素,直到鼠标按钮被释放或者document.releaseCapture()被调用。函数作用:程序中主要是要捕获onmousemove和onmouseup事件语法:element.setCapture(retargetToElement);如果被设置为true,所有事件被直接定向到这个元素;如果是false,事件也可以在这

    2022年5月3日
    46
  • Select2 4.0.5 API

    Select2 4.0.5 API

    2021年11月9日
    53
  • pip安装详解

    pip安装详解pip 是 python 的包管理工具 python2 7 python3 4 以上的版本都已经集成了该工具 我们可以用 pipversion 命令确认是否安装 如果未安装 pip 的 请往下看 下载进入 https pypi org project pip 选择红框中的文件下载图 windows 下安装下载完成后解压得到我们用 CMD 进入该目录下 输入 pythonsetup pyinstall 命令进行安装码字不易废话两句 有需要 python 学习资料的或者有技术问题交流 点击 即可如果是第

    2025年6月12日
    4
  • datagrip怎么安装(dg专业版注册码)

    !!!重点先上!!!今天在尝试使用DataGrip,第一次下载了最新的2018版本,后来发现注册码无法获取到(呵呵)。。。又迫于急切需要,对于非数据库开发人员,我觉得2017.2版本足够了(因为它刚好可以通过Licenseserver注册),所以就选择了这个版本!对于需要尝新使用更高版本的话,那就忽略本文的教程哈~1、下载2017.2版本(链接)2、安装后正常启动,进入填写注册码页面时,…

    2022年4月14日
    455
  • javah是什么命令_jvm命令

    javah是什么命令_jvm命令javah命令用法

    2022年9月24日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号