`

spring-aop-DefaultAdvisorAutoProxyCreator

阅读更多
ProxyFactory:手工编程实现AOP,编程式 添加advice 和 target 以及proxyInterfaces
ProxyFactoryBean: spring 管理,配置interceptorNames,proxyInterfaces,target
DefaultAdvisorAutoProxyCreator:spring 自动发现PointcutAdvisor,根据PointcutAdvisor的 Pointcut 判断是否进行代理


例子:
xml 配置:
<bean id="loginServiceImpl" class="com.gym.LoginServiceImpl"/>
   
   <bean id="ba1" class="com.gym.BeforeAdvice1"/>
   <bean id="dpa1" class="org.springframework.aop.support.DefaultPointcutAdvisor">
      <property name="advice" ref="ba1"/>
   </bean>
   
   
   <bean id="af1" class="com.gym.AfterAdvice1"/>
   <bean id="dpa2" class="org.springframework.aop.support.DefaultPointcutAdvisor">
      <property name="advice" ref="af1"/>
   </bean>
   
   
   <bean id="user" class="com.gym.User" >
      <property name="username" value="xinchun.wang"/>
      <property name="password" value="123456"/>
   </bean>
   
   
   <bean id="WelcomeAdvice" class="com.gym.WelcomeBeforeAdvice"/>
   <bean id="adp3" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
     <property name="pattern">
       <value>com.*login</value>  <!-- 业务实现方法名匹配 -->
     </property>
     <property name="advice">
       <ref bean="WelcomeAdvice"/>
     </property>
   </bean>
   
   
   
   <bean id="adp4" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
     <property name="mappedNames">
       <value>login</value>  <!-- 业务实现方法名匹配 -->
     </property>
     <property name="advice">
       <ref bean="WelcomeAdvice"/>
     </property>
   </bean>
   
   
    <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/> 


test:

public class LoginServiceImplTest {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"classpath:spring/applicationContext.xml");
		LoginService userService = applicationContext.getBean("loginServiceImpl",LoginService.class);
		User user  = new User();
		user.setUsername("xinchun.wang");
		user.setPassword("123456");
		userService.login(user);
		System.out.println(userService.getClass());
	}
分享到:
评论

相关推荐

    spring-aop.jar

    在spring-aop.jar中,`org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator`类负责自动创建代理并织入切面。 三、Spring AOP的使用 在实际应用中,我们可以利用Spring AOP进行日志记录、...

    spring-context源码

    在bean初始化完成后,如果bean定义中指定了`@Scope`、`@Aspect`等AOP相关注解,`ApplicationContext`会通过`DefaultAdvisorAutoProxyCreator`创建代理对象,使得切面逻辑可以在目标方法调用前后执行。 五、事件发布...

    小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

    - **DefaultAdvisorAutoProxyCreator**:继承自AbstractAutoProxyCreator,是Spring中默认的自动代理创建器。 4. AOP代理对象的来源和类型 - **TargetSource(目标源)**:被代理对象的来源。 - **...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1....

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    spring AOP配置的几种方式

    &lt;bean id="proxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" /&gt; &lt;!-- 匹配方法的具体配置 --&gt; &lt;bean id="matchMethodName" class="org.springframework.aop.support....

    Spring AOP 自动代理源码 DefaultAdvisorAutoProxyCreator

    Spring AOP源码05:DefaultAdvisorAutoProxyCreator Spring期末考压轴题:当Spring AOP遇上循环依赖 git注释源码地址:https://github.com/chaitou/spring-framework-master.git 前言 前面已经学习了ProxyF

    模拟spring aop【一】基于jdk动态代理实现的aop

    - Spring AOP提供了`DefaultAdvisorAutoProxyCreator`,它可以自动为匹配的Bean创建JDK代理。 - 切面(Aspect)是Spring AOP的核心,它封装了通知(Advice),通知定义了切面的逻辑。例如,我们可以创建一个`...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    使用DefaultAdvisorAutoProxyCreator实现spring的自动代理

    `DefaultAdvisorAutoProxyCreator`是Spring AOP中用于实现自动代理创建的核心类,它根据配置的顾问来决定哪些bean需要被代理以及如何代理。下面我们将深入探讨`DefaultAdvisorAutoProxyCreator`的工作原理及其在实际...

    JavaEE spring自动实现AOP代理

    - Spring通过`DefaultAdvisorAutoProxyCreator`组件自动创建代理。当它检测到容器中有Advisor或Aspect对象时,会为匹配的bean创建代理。 - `@EnableAspectJAutoProxy`注解可以启用基于AspectJ的自动代理,使Spring...

    Spring AOP

    **Spring AOP 源码解析** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对应用程序进行功能增强的技术。AOP的主要目标是将关注点...

    spring源码分析

    Spring AOP通过代理模式实现,源码中主要涉及`Advisor`、`Pointcut`、`Aspect`等接口和`ProxyFactoryBean`、`DefaultAdvisorAutoProxyCreator`等类。 4. **Spring MVC** - Spring MVC是Spring提供的Web层解决方案...

    shiro入门学习demo源码

    &lt;bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"&gt; &lt;property name="proxyTargetClass" value="true" /&gt; &lt;/bean&gt; ...

    开源框架 Spring Gossip

    BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator &lt;br&gt; 持久层 来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。 资料库存取 Spring ...

    spring 事务(6中配置完全降解)

    `DefaultAdvisorAutoProxyCreator`是Spring AOP中用于自动创建代理的组件,它会寻找所有`Advisor`(包括事务增强`Advisor`),并将它们应用到相关的bean上。这样,我们可以通过定义`Pointcut`来决定哪些方法需要...

    Spring源码

    在源码中,`DefaultAdvisorAutoProxyCreator`类是AOP代理的创建者,`MethodBeforeAdvice`、`AfterReturningAdvice`等接口定义了不同类型的前置、后置通知。 在Spring中,还有一套完善的事件发布和监听机制,通过`...

    spring学习笔记2

    - `DefaultAdvisorAutoProxyCreator`:自动为符合AOP条件的Bean创建代理对象。 2. **BeanFactoryPostProcessor**:此接口允许在所有Bean实例化之前修改Bean的配置元数据。Spring提供了以下实现: - `...

Global site tag (gtag.js) - Google Analytics