ProxyFactoryBean 代理工厂的属性 interceptorNames的值的范围 例子如下:
<bean id="roleService"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"
value="com.future.egov.zhengxeq.zyxt.business.service.orm.RoleService" />
<property name="target">
<bean
class="com.future.egov.zhengxeq.zyxt.business.service.orm.OrmServiceImpl" />
</property>
<property name="interceptorNames">
<list>
<value>decorateBeforeAdvice</value>
<value>transactionAdvisor</value>
<value>roleDecorateInterceptor</value>
</list>
</property>
</bean>
interceptorNames 属性的list集合里面只能放 通知/通知者 。
通知/通知者被称为拦截者(拦截器)。
spring in action 翻译的书里面说集合成员是拦截者/通知者 这是错误的。概念不清晰,希望大家注意一下。
以下是源码里面的解释如下:
/**
* Set the list of Advice/Advisor bean names. This must always be set
* to use this factory bean in a bean factory.
* <p>The referenced beans should be of type Interceptor, Advisor or Advice
* The last entry in the list can be the name of any bean in the factory.
* If it's neither an Advice nor an Advisor, a new SingletonTargetSource
* is added to wrap it. Such a target bean cannot be used if the "target"
* or "targetSource" or "targetName" property is set, in which case the
* "interceptorNames" array must contain only Advice/Advisor bean names.
* @see org.aopalliance.intercept.MethodInterceptor
* @see org.springframework.aop.Advisor
* @see org.aopalliance.aop.Advice
* @see org.springframework.aop.target.SingletonTargetSource
*/
public void setInterceptorNames(String[] interceptorNames) {
this.interceptorNames = interceptorNames;
}
分享到:
相关推荐
《Spring AOP 源码系列:ProxyFactoryBean》 在深入探讨Spring AOP(面向切面编程)的实现机制时,ProxyFactoryBean是至关重要的一个组件。它扮演着生成代理对象的角色,使得我们能够在不修改原有代码的情况下,对...
`ProxyFactoryBean`是Spring AOP实现中的一个重要类,它用于创建代理对象,使我们能够实现动态代理以进行方法拦截。下面将深入分析`ProxyFactoryBean`的源码,探讨其工作原理和使用方式。 `ProxyFactoryBean`继承自...
Spring 基于 ProxyFactoryBean 创建 AOP 代理 ProxyFactoryBean 是 Spring 中用于创建 AOP 代理的重要工具类,它提供了完整的控制能力,可以生成指定的内容。下面将详细介绍 ProxyFactoryBean 的使用方法和 Spring...
在本讨论中,我们将深入探讨Spring AOP如何与`ProxyFactoryBean`结合使用,以及它在Spring Boot中的具体实现。 **Spring AOP基本概念** AOP是一种编程范式,旨在将关注点分离,使代码更具模块化和可维护性。在...
指定interceptorNames的值 --> class="org.nitpro.aop.TransactionInterceptor"> <!--bizImpl为我们自己的业务处理实现 --> <bean id="bizImpl" class="org.nitpro.aop.impl.BizImpl"></bean> class="org.spring...
我们通过`interceptorNames`属性指定Advisor,尽管名字暗示它是拦截器的列表,但实际上它接受Advisor实例。`ProxyFactoryBean`会根据所选的代理技术(默认是JDK动态代理,若目标类没有接口则使用CGLIB)来创建代理...
这部分定义了Spring的命名空间,其中`xmlns`属性指定的是Spring Bean的命名空间URI,而`xsi:schemaLocation`属性则指定了XSD模式文件的位置,这里使用的版本为2.5。 ##### 2.3 定义拦截器 ```xml ...
`interceptorNames`属性则列出了要应用到目标对象上的通知或拦截器的名称,这里的`advice`即为一个具体的通知实例。最后,`target`属性引用了实际的目标Bean,即`usermanagerbiz`,这是Spring AOP需要增强的对象。 ...
- **ProxyFactoryBean**: 定义了一个名为`invocation`的Bean,其类型为`org.springframework.aop.framework.ProxyFactoryBean`。这是一个特殊的Bean,用于创建代理对象,实现AOP功能。在这个例子中,它将实现`...
`proxyInterfaces` 属性确保代理对象实现了指定接口,`interceptorNames` 属性指明了应用的拦截器列表。 总的来说,Spring 自动代理配置通过 `DefaultAdvisorAutoProxyCreator` 和相关的 PointcutAdvisor 实现了对...
在源码中,`Advisor`、`Pointcut`和`Advice`等接口是描述切面的关键,而`ProxyFactoryBean`或`AspectJAutoProxyCreator`则是创建代理对象的工具。 Spring还提供了大量的模块,如数据访问/集成(DAO)、Web MVC、JMS...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...
`org.springframework.aop`和`org.springframework.aop.framework`包下的类,如`Advised`、`Advisor`、`Pointcut`和`ProxyFactoryBean`,构成了Spring AOP的基础。通过阅读源码,我们可以学习如何定义切面、切入点...
而`org.springframework.aop.framework.ProxyFactoryBean`则实现了AOP代理,通过动态代理机制,使得可以在不修改原始代码的情况下,添加新的行为。 此外,Spring的事务管理(`org.springframework.transaction`包)...
<bean id="userDao" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="interceptorNames"> <value>transactionInterceptor ``` 这里,`userDao` Bean是`userDaoTarget`的...
`org.springframework.aop`包下包含了AOP的核心实现,如`Advised`接口和`ProxyFactoryBean`类。 二、数据访问支持 1. **JDBC抽象层**:Spring提供了对JDBC的简化封装,通过`JdbcTemplate`和`SimpleJdbcTemplate`,...
- **使用ProxyFactoryBean创建AOP代理**:`ProxyFactoryBean`是Spring中的一个类,用于创建AOP代理。当定义了一个名为`myfactory`的`ProxyFactoryBean`时,引用`myfactory`的对象实际上获取的是`ProxyFactoryBean....
在Spring AOP的源码中,`org.springframework.aop.framework.ProxyFactoryBean`是创建代理的主要类,它会根据目标类是否有接口选择JDK动态代理或CGLIB。`org.aopalliance.intercept.MethodInterceptor`接口定义了...
对于源码分析,Spring的`org.springframework.beans.factory.config.MethodInvokingFactoryBean`和`org.springframework.aop.framework.ProxyFactoryBean`是策略模式的典型应用。前者用于在初始化时调用目标对象的...
在源码中,`org.springframework.aop`和`org.springframework.aop.framework`包下的类,如`AspectJExpressionPointcut`、`AdvisedSupport`和`ProxyFactoryBean`等,是用来实现AOP的关键。 **源码注释**: 这个...