`
zxmsdyz
  • 浏览: 127728 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Spring AOP使用配置介绍(三):自动创建代理

阅读更多
根据(一)、(二)中介绍的方法已经学会了切面的配置,但都是使用org.springframework.aop.framework.ProxyFactoryBean配置的代理,该方法只能为单个类配置代理。在实际使用中并不方便,因此我们还要学习Spring提供的自动创建功能。
方法一:使用BeanNameAutoProxyCreator
	<!-- 通过bean的名字来匹配选择要代理的bean,在使用时仍用原有bean的id从context中获取 -->
	<bean id="autoProxy"
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<!-- 需要代理的service,以userService结尾注册的bean -->
		<property name="beanNames">
			<list>
				<value>*userService</value>
             <value>*routeService</value>
			</list>
		</property>
		<!-- 拦截器的名称 -->
		<property name="interceptorNames">
			<list>
				<value>validateUserAdvisor</value>
             <!-- 性能监视增强 -->
	            <value>performanceMonitorAdvice</value>
			</list>
		</property>
		<!-- 设置强制使用CGLIB生成代理,此时代理的bean如果已经是代理则必须也是由cglib生成的 -->
		<property name="optimize" value="true" />
	</bean>

其中beanNames用来匹配Spring中配置的bean名称,例如*routeService是匹配那些name或id以routeService结尾的bean。interceptorNames则是用来添加那些要使用的增强,optimize指定代理类用cglib来产生。

方法二:使用DefaultAdvisorAutoProxyCreator
<!-- 自动代理创建器,使用了该创建器就不需要autoProxy了。它会根据advisor中的配置自动找到匹配的类和方法,并为之创建代理 -->
	<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />

该方法的配置最为简单,它会自动为所有的增强所匹配的bean创建相应的代理。

以上两种方法可以只选用其中的一个来简化配置。
0
1
分享到:
评论

相关推荐

    springAOP配置动态代理实现

    4. **代理对象的获取**:通常,Spring容器会自动创建并管理代理对象。在需要调用目标方法的地方,使用Spring注入的bean,实际上就是在操作代理对象。 综上所述,通过理解Spring AOP的配置和动态代理机制,我们可以...

    spring之AOP(动态代理)

    在Spring Boot项目中,配置和使用AOP相对简单。首先,我们需要引入Spring AOP和AspectJ的依赖,这通常在pom.xml或build.gradle文件中完成。然后,我们可以定义一个切面(Aspect),它包含通知(Advice)——即在特定...

    Spring Aop使用实例

    Spring AOP配置 在Spring XML配置文件中,可以声明切面和通知,如下: ```xml &lt;aop:config&gt; &lt;aop:aspect id="loggingAspect" ref="loggingService"&gt; &lt;aop:before method="logBefore" pointcut="execution(* ...

    springAop默认代理方式.zip

    5. **代理的使用**:在应用中,我们通常不直接引用目标对象,而是通过ApplicationContext获取Bean,此时Spring会自动创建并返回相应的代理对象。这样,当我们调用代理对象的方法时,就会触发AOP代理逻辑。 6. **切...

    Spring 2.5 AOP 例子

    1. `&lt;aop:config&gt;`:这是AOP配置的根元素。 2. `&lt;aop:aspect&gt;`:定义一个切面,可以包含多个通知和切点。 3. `&lt;aop:pointcut&gt;`:定义一个切点表达式,匹配特定的方法或类。 4. `&lt;aop:before&gt;`、`&lt;aop:after&gt;`、`&lt;aop...

    Spring基础:Spring AOP简单使用

    - **CGLIB代理**:如果目标对象没有实现任何接口,Spring会使用CGLIB库创建代理对象。CGLIB是一个强大的代码生成库,它可以创建子类并在子类的方法上插入通知。 3. **配置AOP** - **XML配置**:在Spring的配置...

    spring aop所需jar包

    - 自动代理:Spring会根据配置自动生成代理对象,透明地处理切面逻辑。 7. **最佳实践**: - 尽量减少切面的粒度,避免过多的切面导致系统复杂性增加。 - 切面应该具有高度的重用性和独立性,避免与具体业务逻辑...

    spring AOP依赖三个jar包

    - **自动代理生成**:Spring容器可以在启动时自动识别并生成代理对象,无需手动创建。 - **事务管理**:Spring AOP的一个常见应用就是声明式事务管理,通过`@Transactional`注解可以轻松地在方法级别控制事务。 综...

    代理设计模式:静态代理和动态代理的理解、实现与区别(优缺点)与SpringAOP的3种配置方式案例工程代码

    本资源主要涵盖了静态代理和动态代理两种常见类型的代理模式,以及Spring AOP中动态代理的三种配置方式。以下是详细的知识点解析: ### 静态代理 静态代理是程序员手动创建代理类并实现相同接口的方式。代理类和...

    Spring AOP实现机制

    Spring AOP配置 Spring AOP的配置可以通过XML或注解方式进行: - **XML配置**: - 在`&lt;aop:config&gt;`标签内定义切面,`&lt;aop:pointcut&gt;`定义切入点,`&lt;aop:advisor&gt;`定义通知。 - `&lt;aop:aspect&gt;`标签用于定义完整...

    Spring AOP完整例子

    此外,还可以使用注解驱动的配置,通过`@EnableAspectJAutoProxy`注解启用,使得Spring自动扫描并处理切面。 对于测试,`JUnit4`是广泛使用的单元测试框架。在Spring AOP的例子中,我们可能会创建一个`@RunWith...

    Java动态代理(Spring Aop原理)

    动态代理提供了创建代理对象的机制,而Spring AOP则是基于动态代理实现的面向切面编程框架,简化了在多处插入相同逻辑的复杂度。在实际开发中,理解并熟练运用这两个技术对于提高代码质量和可维护性至关重要。

    JDK动态代理 spring aop 的原理

    2. 创建代理类:使用Proxy类的静态方法`newProxyInstance()`,传入三个参数:目标对象的类加载器、目标对象实现的接口列表以及上一步实现的InvocationHandler实例。这将返回一个新的代理对象,该对象实现了与目标...

    SpringAop两种配置demo

    Spring提供了两种类型的代理:JDK动态代理和CGLIB代理。如果目标对象实现了接口,Spring会使用JDK动态代理;如果没有,它会使用CGLIB代理。默认情况下,Spring会自动选择,但也可以手动指定: ```xml &lt;aop:aspect ...

    spring aop spring aop

    在Java项目中,Spring可以使用JDK动态代理或CGLIB动态代理来创建代理对象。 在实际应用中,我们需要在Spring配置文件(如`ApplicationContext.xml`)中启用AOP并声明切面。在给出的XML配置中,`&lt;aop:config&gt;`元素...

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

    - **自动模式**:指的是Spring AOP的自动代理创建功能,即不需要手动指定代理对象,而是通过配置自动创建。 - **AbstractAutoProxyCreator**:一个抽象类,它实现了自动创建代理对象的逻辑。 - **...

    spring AOP 引入jar包,spring IOC 引入Jar包

    5. **代理(Proxy)**:Spring AOP 使用动态代理技术创建对象,有两种代理方式:JDK 动态代理和 CGLIB 代理。前者适用于接口实现类,后者适用于没有接口的类。 6. **注解使用**:如 @Aspect、@Before、@After、@...

    SpringAop学习笔记以及实现Demo

    通过这些示例,你可以深入理解Spring AOP的工作原理,掌握其配置和使用方式,从而在实际项目中灵活地应用切面编程,提高代码的可维护性和可复用性。 请注意,这个压缩包可能包含相关的代码文件、配置文件和文档,...

    spring学习之六“AOP使用spring静态配置文件的实现”

    对于深入理解,可以查看Spring AOP的源码,了解其内部是如何根据配置创建代理对象并插入通知的。 通过以上知识,你将能够理解并运用Spring的静态配置文件实现AOP,有效提升代码的可维护性和复用性。在实际项目中,...

    spring切面AOP所使用的jar包

    - 使用AOP:Spring会自动为匹配的切点创建代理,并在合适的时候执行通知。 6. **实际应用**: 在SSH(Struts2 + Spring + Hibernate)架构中,Spring AOP常用于事务管理。当一个业务操作涉及多个数据库操作时,...

Global site tag (gtag.js) - Google Analytics