`
lz726
  • 浏览: 335951 次
  • 性别: Icon_minigender_2
  • 来自: 福建,福州
社区版块
存档分类
最新评论

关于 DefaultAdvisorAutoProxyCreator 自动代理

阅读更多

用的是ssh架构~
模块要实现的功能是:跟踪用户的操作信息.比如,用户当前正在创建新的文章等等.然后现在用Spring的AOP实现.
用的是DefaultAdvisorAutoProxyCreator 自动代理,项目中的action很多,项目也比较大,所以思前想后,就选这个.

然后结合了RegexpMethodPointcutAdvisor,用拦截方法的办法!(因为是初学,所以可能很多地方表达不正确)
applicationContext.xml里头的这部分配置:

xml 代码
  1. <bean id="abeforeAdvisor"   class="com.csc.callcenter.util.ActionBeforeAdvisor">bean>     
  2.    <bean id="aafterAdvisor"  class="com.csc.callcenter.util.ActionAfterAdvisor">bean>     
  3.    <bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">     
  4.    bean>     
  5.     <bean id="beadvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
  6.     <property name="pattern">     
  7.       <value>.*doAction.*value>       
  8.     property>     
  9.     <property name="advice">     
  10.       <ref bean="abeforeAdvisor"/>     
  11.     property>     
  12.   bean>     
  13.    <bean id="afadvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
  14.     <property name="pattern">     
  15.       <value>.*doAction.*value>       
  16.     property>     
  17.     <property name="advice">     
  18.       <ref bean="aafterAdvisor"/>     
  19.     property>     
  20.   bean>     
  21.    <bean id="onlineAction"   class="com.csc.callcenter.web.onlineinfo.OnlineAction">bean>     
  22.    <bean id="userInfoAction"  class="com.csc.callcenter.web.onlineinfo.UserInfoAction">bean>    


        但是这样,有一个问题,每个aciton 都要在这里配置好,系统初始化的时候,需要getBean("xxxx"),来获得配置里头的bean的信息.我们项目经理说,这样的方法不太好,偶也想寻求更好的办法!不知道有没有更好的解决方法?

       (本来这文字下班时候就敲好了,等偶要提交的时候,老PA 把网络电源给切了,结果到现在才发上来.估计大家都过国庆去了,哎!)

 

 

分享到:
评论
3 楼 kyo100900 2007-10-06  
<br/>
<strong>lz726 写道:</strong><br/>
<div class='quote_div'>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><font>,而且调用的时候,也要每次都getBean("xxxx").</font></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'/></span></span></span></span></span></span></span></span></span></span></span></span></p>
</div>
<p> </p>
<p> </p>
<p><span><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'><span class='tag'>请问你这个必须都getBean("xxxx")是怎么回事?Spring的IoC你没有理解还是另有隐情?</span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><br/>
<br/>
<br/>
<br/>
</p>
2 楼 fengzl 2007-10-04  
自动代理更适合用在业务对象上,增强action?这个有什么意义?
action很难抽象出一个切面来。
action是直接处理request的,
如果你的service层是个facade,只要控制好接口的粒度,把你的要求放在业务对象上应该没问题
1 楼 fyting 2007-10-04  
action在哪儿被调用?什么地方用了getBean("xxxx"),就搞一个自己的Factory嘛...

相关推荐

    使用DefaultAdvisorAutoProxyCreator实现spring的自动代理

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

    spring 的自动代理

    `DefaultAdvisorAutoProxyCreator` 是 Spring 自动代理实现的核心类,它负责根据Advisor创建代理对象。 在提供的配置中,我们看到以下几个关键组件: 1. **Bean `person`** - 这是一个名为 `PersonCon` 的类的实例...

    JavaEE spring自动实现AOP代理

    在Day01_AutoAOP的学习资料中,你可能将深入理解Spring AOP的原理,实践自动代理的配置,并通过示例代码体验如何使用AOP进行日志记录、事务管理和权限控制等功能。这将有助于提升你在JavaEE开发中的能力,使你的代码...

    Spring AOP 自动代理源码 DefaultAdvisorAutoProxyCreator

    Spring AOP源码01:Jdk动态代理底层源码 Spring AOP源码02:ProxyFactory Spring AOP源码03:JdkDynamicAopProxy Spring AOP源码04:MethodInvocation 拦截器调用 Spring AOP源码05:DefaultAdvisorAutoProxyCreator...

    spring代理详解.txt

    `DefaultAdvisorAutoProxyCreator`是Spring中最常用的自动代理创建者,它会自动将所有符合条件的advisor应用到所有的bean上。与`BeanNameAutoProxyCreator`不同,它不依赖于bean名称,而是依赖于advisor的pointcut...

    jdk与cglib动态代理与底层实现

    Spring的`DefaultAdvisorAutoProxyCreator`会根据配置的Advisor自动创建代理,而`Advised`接口提供了对代理设置和获取各种配置信息的能力,如拦截器链。 4. **底层实现原理**: - **JDK代理**:JDK动态代理使用...

    Springboot源码 AbstractAdvisorAutoProxyCreator解析

    2. 基于Advisor匹配机制的自动代理创建器:DefaultAdvisorAutoProxyCreator是这种类型的实现类,它会对容器中的所有Advisor进行扫描,自动将这些切面应用到匹配的Bean中。 3. 基于Bean中AspectJ注解的自动代理生成...

    spring 事务代理配置

    当调用代理方法时,代理会拦截调用并自动开启、提交或回滚事务,从而实现事务的管理。 #### 配置步骤 1. **定义数据源**:首先,需要在Spring配置文件中定义数据源。数据源是所有数据库交互的基础,这里使用`...

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

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

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

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

    spring AOP配置的几种方式

    **特点**:这种方式更为自动化,适用于大量对象的自动代理配置,可以减少XML配置的工作量。 **配置示例**: ```xml &lt;!-- 目标对象Bean --&gt; &lt;!-- 通知对象Advice --&gt; &lt;!-- 自动代理对象 --&gt; ...

    Spring AOP

    - **DefaultAdvisorAutoProxyCreator**:自动代理创建器,它会扫描所有的Advisor并为匹配的bean创建代理。 - **AbstractAutoProxyCreator**:自动代理创建器的抽象基类,提供了创建代理的基本逻辑。 - **...

    Spring声明式事务和@Aspect的拦截顺序问题的解决

    拦截顺序问题的原因是由于 Spring 框架中有多种自动代理方式的存在。Spring 框架中有三种自动代理方式: 1. 通过 Bean 的名称自动创建代理,实现类 BeanNameAutoProxyCreator 2. 根据 Bean 中的 AspectJ 注解自动...

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

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

    spring-aop.jar

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

    annotation 应用

    6. **源码分析**: 深入研究Spring AOP的源码,可以帮助我们理解其内部工作原理,例如`DefaultAdvisorAutoProxyCreator`是如何创建代理的,`Advised`接口是如何控制代理行为的,以及`AspectJExpressionPointcut`是...

    shiro 注解不起作用

    你需要配置`AnnotationMethodHandlerAdapter`和`DefaultAdvisorAutoProxyCreator`,这样Spring AOP才能代理带有Shiro注解的方法。 2. **AOP代理问题**:如果你使用的是Spring,Shiro注解需要通过AOP代理来实现。...

    spring-context源码

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

    spring学习笔记2

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

Global site tag (gtag.js) - Google Analytics