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

    自动配置的好处是不需要挨个 实现【org.springframework.aop.framework.ProxyFactoryBean】 ,只需要 advisor 配置和

      <bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />  代码即可

    1.config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    
      <bean id="logAfter" class="com.gc.action.LogAfter"></bean>
      <bean id="timeBook" class="com.gc.action.TimeBook"></bean>  
      <bean id="logAfterAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
       <!-- advice 要加入的代码 -->
      <property name="advice">
      <ref bean="logAfter"></ref> 
      </property>
      
      <!--指定do开头的方法 -->
      <property name="patterns">
      <value>.*do.*</value>
      </property>
      </bean>
      
      <!-- 自动aopd的配置 -->
      <bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />  
    
      </beans>
    View Code

    2.使用logbefor 后 logafter  后 logaround的advice代码

    3.ITimeBook

    package com.gc.action;
    
    public interface ITimeBook {
    
        public void doAudit(String name);
        
        public void doCheck(String name);
    }
    View Code

    4.TimeBook

    package com.gc.action;
    
    public class TimeBook implements ITimeBook {
    
        @Override
        public void doAudit(String name) {
            // TODO Auto-generated method stub
            System.out.println("this is doAudit");
            
         int m=1/0;
        }
    
        @Override
        public void doCheck(String name) {
            // TODO Auto-generated method stub
            System.out.println("this is doCheck");
        }
    
    }
    View Code

    5.测试

     ApplicationContext context=new FileSystemXmlApplicationContext("config-auto.xml");
                  ITimeBook tb=(ITimeBook)context.getBean("timeBook");
                  tb.doCheck("xiaox");
    View Code
  • 相关阅读:
    [USACO17FEB]Why Did the Cow Cross the Road III S
    [POI2015]PIE
    GSS3
    Bzoj3203: [Sdoi2013]保护出题人 凸包 + 三分
    斜率优化
    fread优化读入
    [USACO09JAN]安全出行Safe Travel 最短路,并查集
    zookeeper单机模式实现分布式,开发部署测试模式机器有限情况
    解决 jmeter An error occurred: Error while processing samples:Mismatch
    python 垃圾回收解析
  • 原文地址:https://www.cnblogs.com/tiancai/p/6734817.html
Copyright © 2011-2022 走看看