• AOP的MethodBeforeAdvice


    使用Spring自动生成代理类,spring利用的是动态代理机制 
    接口 

    Java代码 
    public interface UserDao { 
    void addUser(); 
    void deleteUser(); 

    两个实现: 

    Java代码 
    public class UserDaoMySqlImpl implements UserDao {   
      
    @Override  
    public void addUser() {   
      System.out.println("UserDaoMySqlImpl.addUser()");   
    }   
      
    @Override  
    public void deleteUser() {   
      System.out.println("UserDaoMySqlImpl.deleteUser()");   
      
    }   
      
    }   



    public class UserDaoOracleImpl implements UserDao { 

    @Override 
    public void addUser() { 
      System.out.println("UserDaoOracleImpl.addUser()"); 


    @Override 
    public void deleteUser() { 
      System.out.println("UserDaoOracleImpl.deleteUser()"); 



    Device 
    import java.lang.reflect.Method; 

    import org.springframework.aop.MethodBeforeAdvice; 

    public class UserDaoBeforeAdvice implements MethodBeforeAdvice { 

    @Override 
    public void before(Method arg0, Object[] arg1, Object arg2) 
       throws Throwable { 
      System.out.println("UserDaoBeforeAdvice.before()"); 




    spring的配置文件 

    Xml代码 
    <!-- 配置实现类的bean,可以把所有的实现类都写上 -->  
    <bean id="userdao" class="com.dowebber.spring.aop.UserDaoMySqlImpl"></bean>  
    <!--配置Advice的bean -->  
    <bean id="beforeadvice" class="com.dowebber.spring.aop.UserDaoBeforeAdvice"></bean>  
    <!--配置spring自动生成代理对象所需要的一些参数 -->  
    <bean id="userdaoproxy" class="org.springframework.aop.framework.ProxyFactoryBean">  
    <property name="proxyInterfaces" value="com.dowebber.spring.aop.UserDao"/>  
    <property name="target">  
      <ref bean="userdao"/>  
    </property>  
    <property name="interceptorNames">  
      <list>  
       <value>beforeadvice</value>  
      </list>  
    </property>  
    </bean>  


    测试类: 

    Java代码 
    import org.springframework.context.ApplicationContext;   
    import org.springframework.context.support.ClassPathXmlApplicationContext;   
      
    public class TestUserDaoBeforeDevice {   
      
    public static void main(String[] args) {   
         
      ApplicationContext context = new ClassPathXmlApplicationContext("com/dowebber/spring/aop/spring.xml");   
      UserDao dao = (UserDao)context.getBean("userdaoproxy");   
      dao.addUser();   
    }   
      

  • 相关阅读:
    【转】.net 在线播放各类视频
    引用母版页的内容页添加CSS文件
    NET上传大文件出现网页无法显示的问题 默认的上传文件大小是4M
    DropDownList1.Items.Insert 与 DropDownList1.Items.Add 的区别
    暑假集训8.10-网络流套树剖套线段树
    暑假集训8.10—网络流(黑白染色法)
    暑假集训8.7数据结构专题—网络流套线段树
    暑假集训8.7数据结构专题-线段树存直线
    暑假集训8.7数据结构专题-很妙的线段树( 觉醒力量(hidpower))
    可修改主席树&树上可修改主席树—树套树套树!!!
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4378970.html
Copyright © 2020-2023  润新知