package spring.test; import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.aop.support.NameMatchMethodPointcut; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub /*ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/spring/test/applicationContext.xml"); ITest t = (ITest)context.getBean("testProxy"); t.getName());*/ ITest test = new TestImp(); ProxyFactory proxyFactory = new ProxyFactory(test); NameMatchMethodPointcut pc = new NameMatchMethodPointcut(); pc.setMappedName("getName"); Advice ad = new Advice(); DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(); advisor.setAdvice(ad); advisor.setPointcut(pc); proxyFactory.addAdvisor(advisor); ITest testProxy = (ITest)proxyFactory.getProxy(); testProxy.getName(); } }
package spring.test; public interface ITest { public String getName(); }
package spring.test; public class TestImp implements ITest { @Override public String getName() { String name = "ding chao"; return name; } }
<?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="test" class="spring.test.TestImp"></bean> <bean id = "advice" class="spring.test.Advice"></bean> <bean id ="pointcut" class="org.springframework.aop.support.NameMatchMethodPointcut"> <property name="mappedNames"> <list> <value>getName</value> </list> </property> </bean> <bean id="testProxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="targetName"> <value>test</value> </property> <property name="interceptorNames"> <list> <value>advisor</value> </list> </property> </bean> <bean id="advisor" class="org.springframework.aop.support.DefaultPointcutAdvisor"> <property name="pointcut" ref="pointcut"></property> <property name="advice" ref="advice"></property> </bean> </beans>
相关推荐
SpringAOP面向切面编程和代理设计模式编码实现
小马哥讲 Spring AOP 编程思想 - API 线索图.pdf
AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理
spring aop 编程所需要的搜友JAR包
Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理
Spring AOP面向方面编程原理:AOP概念,主要介绍面向对象的概念及原理,及作者的一些理解。
java xml方式实现springaop编程,包含源码+jar包+解释
2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、可在现有源码上快速进行功能扩展 4、spring boot,mybatis,druid,spring aop的使用
SpringAop面向切面编程
Spring AOP(面向切面编程)作为Spring框架的一个重要部分,为Java开发者提供了一个强大而灵活的工具来切入代码执行流程,实现关注点的分离。通过详细解析Spring AOP的源码,本文揭示了其背后的核心原理和实现机制。...
spring AOP切面编程 运行环境:eclipse 构建工具:maven 不提供maven构建,maven用来解决jar包的依赖
Spring AOP 的实现例子(基于XML配置实现); 具体介绍看这里:https://blog.csdn.net/qq_22078107/article/details/85865543
java手动实现、注解方式实现两种方法实现springaop编程,包含源码+jar包+解释
学习Spring开发的AOP面向切面编程时所需要的jar包,包括com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
Spring AOP 使用纯 Java 实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类植入增强的代码。 课程内容非常详细的介绍Spring AOP全栈技术点,开篇帮助同学们进行知识储备,夯实基础就是核心!...
Spring框架的关键组件之一是面向方面编程(AOP)框架。 面向方面的编程需要将程序逻辑分解成不同的部分。 此教程将通过简单实用的方法来学习Spring框架提供的AOP/面向方面编程。
spring aop编程所需要的一些开发jar包,需配合spring基本jar运行.
轻松掌握 SpringAOP 编程
NULL 博文链接:https://bijian1013.iteye.com/blog/2434298
spring AOP 需要动态库,上传的是spring 切面编程所需要必要的包。