备注:execution(* com.fairy.service..*.*(..))是讲aop切面锁定到com.fairy.service这个包和子包下面的所有方法,事物切面仅仅限于这个包以及其子包下面。
在这里我提供几种配置方式,要想研究更深刻的配置规则各位自己去研究吧。
•任意公共方法的执行:
execution(public * *(..))
•任何一个以“set”开始的方法的执行:
execution(* set*(..))
•AccountService 接口的任意方法的执行:
execution(* com.fairy.service.AccountService.*(..))
•定义在service包里的任意方法的执行:
execution(* com.fairy.service.*.*(..))
•定义在service包或者子包里的任意方法的执行:
execution(* com.fairy.service..*.*(..))
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<aop:config>
<aop:advisor pointcut="execution(* com.fairy.service..*.*(..))" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method propagation="REQUIRED" name="*" />
</tx:attributes>
</tx:advice>
</beans>
分享到:
相关推荐
`springAOP2`可能是一个包含具体示例代码的目录。`基于@AspectJ配置Spring AOP之一 - 飞扬部落编程仓库-专注编程,网站,专业技术.htm`和其关联的`_files`目录可能包含了一个详细的教程或演示如何配置和运行@AspectJ的...
下面将详细介绍XML配置Spring AOP的相关知识点: 1. **定义Aspect(切面)**: 在Spring AOP中,切面是包含一组通知(advises)的类,这些通知定义了在何处、何时以及如何织入到目标对象的执行流程中。在XML配置中...
标题"注解配置SpringAOP共4页.pdf.zip"指出这是一个关于Spring AOP(面向切面编程)的文档,通过注解方式进行配置,文档共有四页。通常,这样的资料会涵盖Spring AOP的基础概念、注解的使用以及如何在实际应用中配置...
配置Spring AOP** 在Spring XML配置文件中,我们可以定义以下元素来实现AOP配置: - `<aop:config>`:声明AOP配置。 - `<aop:pointcut>`:定义切入点表达式,例如`execution(* com.example.service.*.*(..))`表示...
Spring AOP的配置可以通过XML或注解方式进行: - **XML配置**: - 在`<aop:config>`标签内定义切面,`<aop:pointcut>`定义切入点,`<aop:advisor>`定义通知。 - `<aop:aspect>`标签用于定义完整的切面,包括切入...
在使用Spring AOP时,我们可以通过XML配置或注解的方式来定义切面。例如,可以使用`@Aspect`注解定义一个切面类,`@Before`、`@After`等注解来声明通知,`@Pointcut`定义切点表达式。 在实际开发中,Spring AOP广泛...
本篇文章将详细介绍 Spring AOP 的核心概念、如何配置以及所依赖的 Jar 包,特别是 `AspectJ 1.6.12` 版本。 1. **AOP 概念** - **切面(Aspect)**:切面是关注点的模块化,如日志、事务管理等,它们横切多个对象...
**配置Spring AOP的基本步骤** 1. **引入依赖** 首先,你需要在项目中引入Spring AOP的依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.springframework <artifactId>...
总的来说,理解并正确配置Spring AOP的依赖,以及熟练掌握切面、通知和切入点的概念,对于有效利用Spring进行面向切面编程至关重要。通过这些技术,开发者可以将关注点分离,提高代码的可维护性和可复用性。
##### 3.1 配置Spring AOP 在Spring配置文件中定义切面和切入点表达式是非常关键的一步。一般来说,我们会使用通配符来匹配多个类和方法,但在某些情况下,可能需要精确地指定要拦截的类和方法。 ```xml <!-- ...
在Myeclipse中配置Spring AOP项目,你需要: 1. 创建Spring工程,导入所需的Spring库。 2. 配置Spring的XML配置文件,声明AOP的相关bean,包括切面类和通知。 3. 使用`@Aspect`注解标记切面类,并在类中定义通知...
在实际开发中,配置Spring AOP可以通过XML或者基于注解的方式。XML配置文件中,可以定义<aop:config>元素来开启AOP支持,然后使用<aop:aspect>来声明切面,<aop:pointcut>定义切点,<aop:before>、<aop:after>等元素...
在这个"SpringAOP的例子"中,我们将深入探讨如何在Eclipse环境下利用Spring AOP和动态代理来实现这些功能。 首先,让我们理解什么是AOP。AOP是一种编程范式,旨在减少代码的重复性和增强可维护性。在传统的OOP中,...
要配置Spring进行AOP编程,你需要一些特定的jar包支持。在给定的标题和描述中,提到了两个关键的依赖文件:aopalliance-1.0.jar和aspectjweaver.jar。 首先,`aopalliance-1.0.jar`是AOP联盟(AOP Alliance)提供的...
本篇将深入讲解如何通过注解来配置Spring AOP,以实现更加简洁、高效的代码编写。 首先,我们来看注解在Spring AOP中的应用。在传统的AOP配置中,我们需要定义切入点表达式和通知(advice)在XML配置文件中。然而,...
Spring支持两种AOP的实现方式:Spring AspectJ注解风格和Spring XML配置风格。使用AspectJ注解风格是最常见的,它允许开发者直接在方法上使用注解来定义切面。 Spring AOP中有五种不同类型的的通知(Advice): 1....
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...
这篇教程将详细讲解如何通过Spring的配置文件来实现AOP。 一、理解AOP概念 AOP的核心思想是将分散在各个模块中的交叉性代码(如日志、事务处理)抽取出来,形成独立的切面,以便于复用和维护。它提供了一种模块化的...