<aop:pointcut表达式语法问题

问题描述

现在打算改用spring3,在设置aop管理事务时,碰到表达式语法的问题,我的类目录结构基本如下com.taoists.base.user.service.impl.UserMgrImpl.javacom.taoists.sale.order.service.impl.OrderMgrImpl.java表达式是这样写:expression="execution(* com.taoists.*.service..*(..))"或者这样写: expression="execution(* com.taoists.*.service.impl.*.*(..))"另外,com.taoists.core包下还有很多工具类,如文件上传,邮件发送等,com.taoists.core.utile.mail.SendMail.javacom.taoists.core.utils.upload.FileUpload.java这些工具类是否需要加入aop拦截中?谢谢

解决方案

你这里需要通配两级目录,需要这样写:expression="execution(* com.taoists.*.*.service..*(..))" 工具类不需要加入,如果service中有工具类调用,那已经处在事物之中了,所以不需要。
解决方案二:
这个样写expression="execution(* com.taoists.*.service.impl.*.*(..))" 例如我之前写的<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><!-- 配置事务的传播特性 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED"/><tx:method name="del*" propagation="REQUIRED"/><tx:method name="modify*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/><!--read-only="true 脏数据只读,提高效率 --></tx:attributes></tx:advice><!-- 那些类的哪些方法参与事务 --><aop:config> <!--如果这里配置错了可能进行回滚,所以能看到sql语句,但是数据库是没数据的 --><aop:pointcut id="allManagerMethod" expression="execution(* com.zxt.usermsg.manager.*.*(..))"/><aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/></aop:config></beans>
解决方案三:
expression="execution(* com.taoists.*.service.impl.*.*(..))"这样写工具类不需要

时间: 2024-11-01 04:32:58

&amp;lt;aop:pointcut表达式语法问题的相关文章

Spring事务管理—aop:pointcut expression解析

  先来看看这个spring的配置文件的配置:     <!-- 事务管理器 -->  <bean id="transactionManager"   class="org.springframework.orm.hibernate3.HibernateTransactionManager">   <property name="sessionFactory" ref="sessionFactory&quo

java-在超链接&amp;amp;lt;a&amp;amp;gt;的href或&amp;amp;lt;form&amp;amp;gt;的action中可以使用“JSP表达式”语法吗

问题描述 在超链接<a>的href或<form>的action中可以使用"JSP表达式"语法吗 我是这样写的: 解决方案 用这个${pageContext.request.contextPath}替代你写的jsp脚本 解决方案二: 我是这样写的: 解决方案三: 标签写全会被吞......... form:form action="<%=request.getContextPath() %>/student/studentModifyFini

java中lambda表达式语法说明_java

语法说明 一个lambda表达式由如下几个部分组成: 1. 在圆括号中以逗号分隔的形参列表.在CheckPerson.test方法中包含一个参数p,代表了一个Person类的实例.注意:lambda表达式中的参数的类型是可以省略的:此外,如果只有一个参数的话连括号也是可以省略的.比如上一节曾提到的代码: p -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25

Java8初体验(一)lambda表达式语法

感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性-lambda表达式. java8的安装 工欲善其器必先利其器,首先安装JDK8.过程省略,大家应该都可以自己搞定.但是有一点这里强调一下(Windows系统):目前我们工作的版本

Lambda 表达式语法

本主题介绍 lambda 表达式的语法. 它演示提供 lambda 表达式的结构元素的示例,这些元素与示例. Lambda 表达式语法 下面用于定义显示语法,ISO C++11 从标准,lambda 表达式 (项标记下标 选择 是可选的):          lambda-introducer lambda-declarator 选择 compound-statement 进一步失败的组件这些语法如下: lambda-introducer:          [ lambda-capture 选

任务调度SchedulerX系列之QuartZ时间表达式语法与样例说明

目   录 Quartz时间表达式入门... 1 Quartz时间表达式格式详解... 2 Quartz表达式中的特殊字符... 3 * 星号... 3 ? 问号... 3 , 逗号... 4 / 斜杠... 4 - 中划线... 5 L 字母... 5 W 字母... 6 # 井号... 6 QuartZ时间表达式样例... 7 分钟的 Cron 表达式... 7 天的 Cron 表达式... 7 周和月的 Cron 表达式... 7       Quartz时间表达式入门 时间格式 <s m

PostgreSQL SQL语法(二):值表达式

本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 值表达式被用于各种各样的环境中,例如在SELECT命令的目标列表中.作为INSERT或UPDATE中的新列值或者若干命令中的搜索条件.为了区别于一个表表达式(是一个表)的结果,一个值表达式的结果有时候被称为一个标量.值表达式因此也被称为标量表达式(或者甚至简称为表达式).表达式语法允许使用算数.逻辑.集合和其他操作从原始部分计算值. 一个值表达式是下列之一: 一个常量或文字值 一个列引用 在一个函数定义体或预备语句中的

Spring 2.X中AOP的使用浅析

和Spring1.X相比,Spring2.X使用AspectJ的语法来声明AOP,这使得它更"标准",更灵活了.还是那句话,如果你不了解AspectJ并且打算使用Spring2.X的AspectJ式AOP,那就学学AspectJ吧,这方面的书还是很多了. Spring2.X下的切面有两种实现方式,一种是以Java文件定义切面(其只是普通的Java类),然后在配置文件中声明定义的切面:另一种是在Java类中引入和AOP相关的元数据(注释). 先介绍第一种配置方式.需要指出的是,Sprin

Java的Spring框架中AOP项目的一般配置和部署教程_java

0.关于AOP面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP是OOP的延续. 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等. 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对