zoukankan      html  css  js  c++  java
  • Spring顾问

    什么是顾问?什么是通知?

    顾问:从字面意思来讲,只找固定的几个可以使用

    通知:所有的都可以用

    举例说明通知

    创建接口和实现类

    package cn.happy.day11ProxyFactory;
    
    /**
     * Created by Administrator on 2018/3/8.
     */
    public interface ISomeService {
        public void doSome();
        public void doAny();
    }
           
    
    
    
    package cn.happy.day11ProxyFactory;
    
    /**
     * Created by Administrator on 2018/3/8.
     */
    public class SomeServiceImpl implements ISomeService {
        public void doSome() {
            System.out.println("do Something");
        }
    
        public void doAny() {
            System.out.println("do Any");
        }
    }
    

      

    创建一个类

    package cn.happy.day11ProxyFactory;
    
    import org.springframework.aop.MethodBeforeAdvice;
    
    import java.lang.reflect.Method;
    
    /**
     * Created by Administrator on 2018/3/8.
     */
    public class BeforeAdvice implements MethodBeforeAdvice {
        public void before(Method method, Object[] objects, Object o) throws Throwable {
            System.out.println("我是通知");
        }
    }
    

      

    配置xml

      <!--目标类型-->
    <bean id="service" class="cn.happy.day11ProxyFactory.SomeServiceImpl"></bean>
    
        <!--增强-->
        <bean id="beforeAdvice" class="cn.happy.day11ProxyFactory.BeforeAdvice"></bean>
    
        <!--代理工厂Bean-->
        <bean id="Proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
            <!--引用目标类型-->
            <property name="target" ref="service"/>
            <property name="interceptorNames" value="beforeAdvice"/>
        </bean>
    

      

    测试结果

    通知是针对所有的方法进行

    顾问

    只需修改xml文件配置即可,

    <!--目标类型-->
    <bean id="service" class="cn.happy.day11ProxyFactory.SomeServiceImpl"></bean>
    
        <!--增强-->
        <bean id="beforeAdvice" class="cn.happy.day11ProxyFactory.BeforeAdvice"></bean>
    
        <!--顾问-->
        <bean id="advisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
            <property name="advice" ref="beforeAdvice"></property>
            <!--value:设置方法名,多个方法之间用逗号分隔-->
            <property name="mappedNames" value="doSome"></property>
        </bean>
    
        <!--代理工厂Bean-->
        <bean id="Proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
            <!--引用目标类型-->
            <property name="target" ref="service"/>
            <property name="interceptorNames" value="advisor"/> </bean>

      

    测试:

  • 相关阅读:
    搭建自己的技术博客系列(三)让你的博客拥有评论功能!
    搭建自己的技术博客系列(二)把 Hexo 博客部署到 GitHub 上
    Excel2003 去除重复项
    Delphi 7拦截滚轮事件不响应滚轮的上下滚动
    APSC4xSeries_Ver32.exe在win764位提示缺少DLL错误解决办法
    Win7装在其他盘 (非C盘)办法
    Delphi7 安装ICS,与简单使用
    Python学习笔记
    使用IP spoofer 功能
    python在windows里怎么配置apache呢,
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8533690.html
Copyright © 2011-2022 走看看