zoukankan      html  css  js  c++  java
  • 自动代理

    public interface ISomeService {
        public void doSome();
        public void dade();
    }
    public interface ISomeService1 {
        public void doSome();
        public void dade();
    }
    复制代码
    import org.springframework.aop.AfterReturningAdvice;
    import java.lang.reflect.Method;
    
    public class MyAfterReturningAdvice implements AfterReturningAdvice {
        public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
            System.out.println("===========after================");
        }
    }
    复制代码
    复制代码
    import org.springframework.aop.MethodBeforeAdvice;
    import java.lang.reflect.Method;
    
    //前置通知
    public class MyBeforeAdvise implements MethodBeforeAdvice {
    
        public void before(Method method, Object[] objects, Object o) throws Throwable {
            System.out.println("=============log==================");
        }
    }
    复制代码
    复制代码
    public class SomeService implements ISomeService {
        //核心业务
        public void doSome(){
            System.out.println("我们都要找到Java开发工作,薪资6,7,8,9,10K");
        }
    
        public void dade() {
            System.out.println("==============add============");
        }
    
    
    }
    复制代码
    复制代码
    public class SomeService1 implements ISomeService1 {
        //核心业务
        public void doSome(){
            System.out.println("我们都要找到Java开发工作,薪资6,7,8,9,10K");
        }
    
        public void dade() {
            System.out.println("==============add============");
        }
    
    
    }
    复制代码

    1.Advisor自动代理生成器

    配置文件

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           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
            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
    ">
        <!--01.目标对象-->
        <bean id="someService" class="cn.bdqn.spring15.SomeService"></bean>
        <bean id="someService1" class="cn.bdqn.spring15.SomeService1"></bean>
        <!--02.增强 通知-->
        <bean id="beforeAdvice" class="cn.bdqn.spring15.MyBeforeAdvise"></bean>
        <bean id="afterAdvice" class="cn.bdqn.spring15.MyAfterReturningAdvice"></bean>
        <!--增强:前置顾问-->
        <bean id="beforeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
            <property name="advice" ref="beforeAdvice"></property>
            <property name="pattern" value=".*do.*"></property>
        </bean>
    
        <!--增强:后置顾问-->
        <bean id="afterAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
            <property name="advice" ref="afterAdvice"></property>
            <property name="pattern" value=".*do.*"></property>
        </bean>
    
        <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"></bean>
    
    </beans>
    复制代码

    2.BeanName自动代理生成器

    配置文件

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           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
            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
    ">
        <!--01.目标对象-->
        <bean id="someService" class="cn.bdqn.spring16.SomeService"></bean>
        <!--02.增强 通知-->
        <bean id="beforeAdvice" class="cn.bdqn.spring16.MyBeforeAdvise"></bean>
        <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            <property name="beanNames" value="someService"></property>
            <property name="interceptorNames" value="beforeAdvice"></property>
        </bean>
    </beans>
    复制代码

    3.单侧

    复制代码
    /*Advisor自动代理生成器*/
        @Test
        public void test(){
            ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContextspring13.xml");
            ISomeService service = (ISomeService) ctx.getBean("someService");
            ISomeService1 service1 = (ISomeService1) ctx.getBean("someService1");
            service.doSome();
            service.dade();
            service1.doSome();
            service1.dade();
        }
    复制代码
    复制代码
      // BeanName自动代理生成器
        @Test
        public void test10(){
            ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContextspring14.xml");
            ISomeService service = (ISomeService) ctx.getBean("someService");
            service.doSome();
            service.dade();
        }
  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/zfx123--/p/7263806.html
Copyright © 2011-2022 走看看