`

关于 expression="execution(* com.xy.service.*.*(..))"

 
阅读更多

先来看看这个spring的配置文件的配置:

 

  <!-- 事务管理器 -->
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>


 <!-- 配置事务的传播特性 -->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="get*" propagation="REQUIRED" read-only="true" />
   <tx:method name="del*" propagation="REQUIRED" />
   <tx:method name="save*" propagation="REQUIRED" />
   <tx:method name="update*" propagation="REQUIRED" />
  </tx:attributes>
 </tx:advice>


 <!-- 配置事务拦截器拦截哪些类的哪些方法,一般设置成拦截Service -->
 <aop:config>
  <aop:pointcut expression="execution(* com.xy.service.*.*(..))"
   id="allDaoMethod" />
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allDaoMethod" />
 </aop:config>


表示com.xy.service包下的所有方法为为事务管理。

 

execution(* com.aptech.jb.epet.dao.hibimpl.*.*(..)) 

 

这样写应该就可以了 这是com.aptech.jb.epet.dao.hibimpl 包下所有的类的所有方法。。

第一个*代表所有的返回值类型 

第二个*代表所有的类

第三个*代表类所有方法 最后一个..代表所有的参数。

 

 

下面给出一些常见切入点表达式的例子:

  • 任意公共方法的执行:

    execution(public * *(..))
    
  • 任何一个以“set”开始的方法的执行:

    execution(* set*(..))
    
  • AccountService 接口的任意方法的执行:

    execution(* com.xyz.service.AccountService.*(..))
    
  • 定义在service包里的任意方法的执行:

    execution(* com.xyz.service.*.*(..))
    
  • 定义在service包或者子包里的任意类的任意方法的执行:

    execution(* com.xyz.service..*.*(..))
分享到:
评论

相关推荐

    Spring AOP配置源码

    &lt;aop:pointcut expression="execution(* com.spring.service..*(..))" id="pointCut"/&gt;声明一个切入点,注意execution表达式的写法 &lt;aop:before method="before" pointcut-ref="pointCut"/&gt; aop前置通知 ...

    基于java的企业级应用开发:AspectJ开发.ppt

    - `&lt;aop:pointcut&gt;`定义了切入点,`expression`属性中的`execution(* com.itheima.jdk.*.*(..))`匹配`com.itheima.jdk`包下的所有类的所有方法。 - `&lt;aop:before&gt;`、`&lt;aop:after-returning&gt;`等定义了不同类型的通知...

    spring 2.0使用AOP实例(基于Annotation的配置方式)

    `execution(* com.example.service.*.*(..))`是切点表达式,用于匹配特定的Java方法。在这个例子中,它匹配`com.example.service`包下的所有类的所有方法。 在Spring中,我们还需要启用注解驱动的AOP支持。这通常在...

    pointcut表达式and or not在xml中配置

    &lt;aop:pointcut id="serviceMethods" expression="not execution(* com.babyhen.service..LoginService.*(..)) and execution(* com.babyhen.service..*Service.*(..))"/&gt; &lt;aop:advisor advice-ref="loggingAdvice...

    linux 手动建oracle数据库

    *.parallel_execution_message_size=65535 *.parallel_max_servers=128 *.pga_aggregate_target=209715200 *.processes=150 *.recyclebin='OFF' *.remote_login_passwordfile='EXCLUSIVE' *.replication_dependency_...

    Spring的AOP实例(XML+@AspectJ双版本解析+源码+类库)

    这里,`loggingAspect`是切面的ID,`loggingService`是切面实现的bean引用,`logBefore`和`logAfter`是通知方法,`execution(* com.example.service.*.*(..))`是切入点表达式,匹配所有`com.example.service`包下的...

    前置后置环绕异常通知

    这里的切入点表达式`execution(* com.example.service.*.*(..))`匹配了`com.example.service`包下的所有类的所有方法。 2. **后置通知**: 后置通知在目标方法执行后触发,无论方法是否抛出异常。使用`@After`注解...

    Maven拆分代码.zip

    &lt;!--配置连接池--&gt; &lt;bean id="dataSource" class=... &lt;aop:pointcut id="pointcut" expression="execution(* com.itheima.service.impl.*.*(..))"/&gt; &lt;aop:advisor advice-ref="advice" pointcut-ref=

    Spring_AOP_XML配置

    例如,`execution(* com.example.service.*.*(..))`匹配`com.example.service`包下的所有类的所有方法。 5. **通知的其他类型**:除了前置通知,你还可以定义其他类型的通知,例如: ```xml &lt;!-- 后置通知 --&gt; ...

    aop_log.rar_spring aop

    切入点表达式`execution(* com.example.service.*.*(..))`表示所有在`com.example.service`包下的类中的方法。 最后,我们需要在Spring配置中启用AOP并注册这个切面。在XML配置中,这可以通过`&lt;aop:config&gt;`和`...

    注解实现AOP

    例如,`execution(* com.example.service.*.*(..))` 表示匹配`com.example.service`包下的所有类的所有方法。 五、实际应用 在实际项目中,AOP常用于日志记录、事务管理、性能监控等场景。通过注解,我们可以将...

    09spring4_aop1.rar

    在上面的例子中,`execution(* com.example.service.*.*(..))`表示匹配`com.example.service`包下的所有类的所有公共方法。`*`是通配符,`..`表示任意数量的参数。 **五、运行与测试** 在完成了上述配置后,我们...

    springAop的配置实现

    - `&lt;aop:pointcut&gt;`:定义切入点表达式,例如`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有方法。 - `&lt;aop:advisor&gt;`:定义通知和切入点的关联,指定何时何地执行通知。 - `...

    spring_aop.rar

    `execution(* com.example.service.*.*(..))`是一个切点表达式,表示执行com.example.service包下的所有类的所有方法时,触发通知。 **基于注解的AOP配置** 随着Spring的发展,基于注解的AOP配置变得越来越流行,...

    Spring 使用注解来实现通知

    其中,`execution(* com.example.service.*.*(..))`是切入点表达式,用于匹配需要拦截的方法。 3. **@After 后置通知** `@After`注解的方法会在目标方法执行后,无论结果如何都会被执行,通常用于资源清理。 ```...

    Spring-AOP实例

    例如,`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有类的所有方法。 3. 通知方法(Advice Method):在切点匹配时执行的方法,如上面的`logBefore`和`logAfter`。 五、AOP...

    Spring Aop的简单实现

    `logBefore`、`logAfter`和`logAround`是通知方法,`pointcut`属性定义了这些通知将在哪些方法上执行,`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有类的所有方法。 接下来,...

    spring aop注解方式、xml方式示例

    &lt;aop:pointcut id="serviceMethods" expression="execution(* com.example.service.*.*(..))" /&gt; &lt;aop:aspect id="loggingAspect" ref="loggingAspectBean"&gt; &lt;aop:after-returning method="logAfterServiceCall...

    Spring AOP 案例

    `@Before`和`@After`注解分别用于定义前置和后置通知,而`execution(* com.example.service.*.*(..))`是切入点表达式,表示在`com.example.service`包下的所有类的所有方法调用之前和之后执行日志记录。 四、Spring...

Global site tag (gtag.js) - Google Analytics