spring 中的BeanNameAutoProxyCreator
2012-01-07 20:38:41| 分类: spring |字号 订阅
BeanNameAutoProxyCreator 只需指定bean的名称,以及被通知bean的名称,指定名称时可以使用通配符。
自动代理它们。
例子:
package com.itcst.info.autoproxy;
public class AutoBean {
public void foo()
{
System.out.println("hello xiaoming");
}
}
----拦截器advisce
package com.itcst.info.pointcut;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class SimpleAdvice implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation invokes) throws Throwable {
// TODO Auto-generated method stub
System.out.println("提前了");
return invokes.proceed();
}
}
3.配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
default-autowire="no" default-lazy-init="false">
<bean id="proxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>foo*</value>---表达式foo开头
<value>barBean</value>
</list>
</property>
<property name="interceptorNames">
<list><value>advice</value></list>
</property>
</bean>
<bean id="foobean" class="com.itcst.info.autoproxy.AutoBean"></bean>
<bean id="barbean" class="com.itcst.info.autoproxy.AutoBean"></bean>
<bean id="advice" class="com.itcst.info.pointcut.SimpleAdvice"></bean>
</beans>
客户端
package com.itcst.info.autoproxy;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AutoproxyTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx=new ClassPathXmlApplicationContext("conf/spring/beans.xml");
AutoBean bean1=(AutoBean)ctx.getBean("foobean");
AutoBean bean2=(AutoBean)ctx.getBean("barbean");
bean1.foo();
bean2.foo();
}
}
分享到:
相关推荐
`BeanNameAutoProxyCreator`是Spring AOP实现中的一种代理创建器,它根据bean的名称来决定是否对bean进行代理处理。在本篇文章中,我们将深入探讨`BeanNameAutoProxyCreator`的使用方法及其背后的原理。 首先,`...
12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...
在Spring的XML配置文件中,我们需要声明一个`BeanNameAutoProxyCreator` bean,并设置其属性。例如: ```xml <bean id="proxyCreator" class="org.springframework.aop.framework.autoproxy....
Spring 事务管理是Java开发中不可或缺的一部分,尤其是在企业级应用中。它提供了强大的事务控制能力,确保了数据的一致性和完整性。本篇文章将详细解析Spring中的六种事务配置方法,帮助开发者深入理解并掌握Spring...
BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator <br> 持久层 来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。 资料库存取 Spring ...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能...附录B 在Spring中开发Web Service
### Spring中的Transaction事务传播行为种类详解 #### 一、引言 在开发基于Spring框架的应用程序时,事务管理是确保数据一致性的重要手段之一。Spring框架提供了丰富的事务管理功能,其中包括了事务传播行为...
本文将深入探讨如何在Spring框架中使用`TransactionProxyFactoryBean`来实现声明式事务代理配置。 #### 声明式事务管理概述 声明式事务管理通过在配置文件或注解中定义事务边界,而不是在业务代码中显式地管理事务...
在这篇文章中,我们将探讨使用Spring_Hibernate框架实现声明式事务配置的方法,具体来说,就是使用TransactionInterceptor来管理事务。在Spring框架中,事务管理器是核心组件之一,它负责管理事务的生命周期,包括...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能...附录B 在Spring中开发Web Service
在Spring框架中,代理机制主要用于实现AOP(面向切面编程)功能,通过动态创建代理对象来拦截目标方法调用,从而实现如事务管理、日志记录、性能监控等横切关注点。 ### 1. ProxyFactoryBean `ProxyFactoryBean`是...
根据提供的文件信息,本文将详细解析Spring 1.2中声明式事务管理的相关知识点,包括其配置方式、工作原理以及如何在实际应用中实施。 ### Spring 1.2声明式事务简介 Spring框架中的声明式事务管理是通过AOP(面向...
下面将详细介绍如何在Spring中配置和使用多个数据源,以及结合Ibatis进行数据访问。 首先,我们需要在`jdbc.properties`文件中配置每个数据源的相关参数,如驱动类名、URL、用户名和密码。在这个例子中,有两个数据...
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <!-- 指定对满足哪些bean name的bean自动生成业务代理 --> <!-- 下面是所有需要自动创建事务代理的bean--> ...
前者用于保护Spring容器中的业务对象,通过使用ProxyFactoryBean或BeanNameAutoProxyCreator,可以实现对Bean的代理和安全管理;后者则通过过滤器保护HTTP资源,开发者只需在web.xml中添加相应的Filter配置,即可...
<bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> ``` 最后,`autoproxy` Bean 是一个自动代理创建器,它会为 `purviewimpl` 这个 Bean 创建一个代理...
BeanNameAutoProxyCreator BeanNameAware BeanNameUrlHandlerMapping BeanNameViewResolver BeanNotOfRequiredTypeException BeanPostProcessor BeanPropertyBindingResult BeanPropertySqlParameterSource ...
Spring 框架中,声明式事务和 @Aspect 都可以用于实现Aspect-Oriented Programming(面向方面编程),但是它们的拦截顺序问题往往会导致很多问题。本文将详细介绍 Spring 声明式事务和 @Aspect 的拦截顺序问题的解决...