zoukankan      html  css  js  c++  java
  • Spring------关于代理

    自动装配(基于顾问)

    someService类

    1 public class someService {
    2     public void  list(){
    3         System.out.println("list");
    4     }
    5     public  void add(){ System.out.println("add"); }
    6 }

    前置增强类

    1 public class MyBeforeAdvice implements MethodBeforeAdvice {
    2     @Override
    3     public void before(Method method, Object[] args, Object target) throws Throwable {
    4         System.out.println("before=============");
    5     }
    6 }

    xml配置

     1 <bean id="someService" class="cn.Day11.someService"></bean>
     2     <!--增强-->
     3 <bean id="myBeforeAdvice" class="cn.Day11.MyBeforeAdvice"></bean>
     4     <!--顾问-->
     5     <bean id="myAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
     6         <property name="advice" ref="myBeforeAdvice"></property>
     7         <property name="mappedNames" value="*li*"></property>
     8     </bean>
     9 
    10 <!--自动代理-->
    11     <bean id="proxyService" class="org.springframework.aop.framework.ProxyFactoryBean">
    12         <property name="target" ref="someService"></property>
    13         <property name="interceptorNames" value="myAdvisor"></property>
    14     </bean>

    测试类

    1 public class Test11 {
    2     @Test
    3     public void zyy(){
    4         ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContextDay11.xml");
    5         someService service=(someService)ctx.getBean("proxyService");
    6         service.list();
    7         service.add();
    8     }

    测试结果

    自动代理

     前两个类相同

    xml文件(也可以用顾问)

     1 <bean id="someService" class="cn.Day12.someService"></bean>
     2     <!--增强-->
     3 <bean id="myBeforeAdvice" class="cn.Day12.MyBeforeAdvice"></bean>
     4     <!--顾问-->
     5     <bean id="myAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
     6         <property name="advice" ref="myBeforeAdvice"></property>
     7         <property name="mappedNames" value="*li*"></property>
     8     </bean>
     9 
    10 
    11     <bean id="proxyService" class="org.springframework.aop.framework.ProxyFactoryBean">
    12         <property name="target" ref="someService"></property>
    13         <property name="interceptorNames" value="myAdvisor"></property>
    14     </bean>
    15 
    16     <!--自动代理-->
    17     <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"></bean>

    测试类

     1 public class Test12 {
     2     @Test
     3     public void De(){
     4             ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContextDay12.xml");
     5             someService service=(someService)ctx.getBean("someService");
     6             service.list();
     7             service.add();
     8 
     9     }
    10 
    11 }
  • 相关阅读:
    平凡的函数(素数筛)
    Windows下搭载虚拟机以及环境安装
    2020.8.22-2020.8.31小假期自主提升计划(联赛知识点总结)
    MySQL入门详解(三)---mysql如何进行主从配置
    MySQL入门详解(二)---mysql事务、锁、以及优化
    Python中操作HTTP请求的urllib模块详解
    给自己列一份清单,可以提升自己的书目
    Javascript中的bind详解
    Python手写模拟单向链表对象,栈对象和树
    从敲入 URL 到浏览器渲染完成、对HTTP协议的理解
  • 原文地址:https://www.cnblogs.com/zhangxuuy/p/10012548.html
Copyright © 2011-2022 走看看