Spring代理处理参数和方法:
package com.rx.spring.dynamicmock;public interface UserManager { public void addUser(String username, String password); public void deleteUser(int id);}package com.rx.spring.dynamicmock;public class UserManagerImpl implements UserManager { public void addUser(String username, String password) { System.out.println("-------UserManagerImpl.addUser()----------"); } public void deleteUser(int id) { System.out.println("-------UserManagerImpl.deleteUser()----------"); }}package com.rx.spring.dynamicmock;import org.aspectj.lang.JoinPoint;public class SecurityHandler { /*** * 处理连接点 * @param joinPoint */ private void checkSecurity(JoinPoint joinPoint) { Object[] args = joinPoint.getArgs(); for (int i=0; i System.out.println(args[i]); } System.out.println(joinPoint.getSignature().getName()); System.out.println("----------checkSecurity()---------------"); }}package com.rx.spring.dynamicmock;import org.springframework.beans.facTory.BeanFacTory;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Client { public static void main(String[] args) { BeanFacTory facTory = new ClassPathXmlApplicationContext("applicationContextMockSpring.xml"); UserManager userManager = (UserManager)facTory.getBean("userManager"); userManager.addUser("abc", "123"); }} xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
运行结果:
abc123addUser----------checkSecurity()----------------------UserManagerImpl.addUser()----------
一个今天胜过两个明天