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>

      

    测试:

  • 相关阅读:
    游戏中常见英语词汇,做游戏的,玩游戏总是要碰到的
    解决maven项目创建过慢的问题以及快捷键
    java数据结构与算法三: 链表(双向链表)
    java数据结构与算法三: 链表(单链表)
    java数据结构与算法二: 队列(数组模拟环形队列)
    java数据结构与算法二: 队列(数组模拟队列)
    破解网易云方法集合
    java数据结构与算法一:稀疏数组
    java读写磁盘文件
    eclipse常用快捷键
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8533690.html
Copyright © 2011-2022 走看看