spring开发_AOP_代理模式

> 代理对象 -------------->> 目标对象

com.b510.service; PersonService { save(String name); String getPersonName(Integer personid); update(String name,Integer personid); }

com.b510.service.impl; java.lang.reflect.InvocationHandler; java.lang.reflect.Method; java.lang.reflect.Proxy; JDKProxyFactory InvocationHandler { Object targetObject; Object createProxyInstance(Object targetObject) { .targetObject = targetObject; Proxy.newProxyInstance(.targetObject.getClass() .getClassLoader(), .targetObject.getClass().getInterfaces(),); } @Override Object invoke(Object arg0,Method method,Object[] arg) Throwable { PersonServiceBean bean = (PersonServiceBean) .targetObject; Object result = ; (bean.getUser() != ) { result = method.invoke(targetObject,arg); } result; } }

com.b510.service.impl; com.b510.service.PersonService; PersonServiceBean PersonService { String user = ; PersonServiceBean() { } PersonServiceBean(String user) { .user = user; } String getUser() { .user; } @Override String getPersonName(Integer personid) { System.out.println("this is the getPersonName() function"); "hongten"; } @Override save(String name) { System.out.println("this is the save() function"); } @Override update(String name,Integer personid) { System.out.println("this is the update() function"); } }

com.b510.test; com.b510.service.PersonService; com.b510.service.impl.JDKProxyFactory; com.b510.service.impl.PersonServiceBean; AOPTest { main(String[] args) { JDKProxyFactory factory = JDKProxyFactory(); PersonService service = (PersonService) factory .createProxyInstance( PersonServiceBean("hello")); service.save("hongten"); service.getPersonName(1); service.update("hello",2); System.out.println("*************************"); PersonService service1 = (PersonService) factory .createProxyInstance( PersonServiceBean()); service1.save("hongten"); service1.getPersonName(1); service1.update("hello",2); System.out.println("end"); } }

is the save() function is the getPersonName() function is the update() function ************************* end

 

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...