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>

      

    测试:

  • 相关阅读:
    软件的生命&测试的流程
    软件测试的定义&分类
    编写T4模板+DapperHelper(Sqlite数据库,简单更改即可适用其他数据库)==》简易ORM-简单的更有效更容易管理不容易出错
    DapperHelper
    HttpPostHelper_获取前台Form表单提交的数据
    可视化自建表单
    preview/showZoomImg展示图片插件+预览(改)
    js前端动态增减高级查询表单
    接口测试 要资料的进
    BeanShell的入门简介01
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8533690.html
Copyright © 2011-2022 走看看