先来看看这个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..*.*(..))
相关推荐
<aop:pointcut expression="execution(* com.spring.service..*(..))" id="pointCut"/>声明一个切入点,注意execution表达式的写法 <aop:before method="before" pointcut-ref="pointCut"/> aop前置通知 ...
- `<aop:pointcut>`定义了切入点,`expression`属性中的`execution(* com.itheima.jdk.*.*(..))`匹配`com.itheima.jdk`包下的所有类的所有方法。 - `<aop:before>`、`<aop:after-returning>`等定义了不同类型的通知...
`execution(* com.example.service.*.*(..))`是切点表达式,用于匹配特定的Java方法。在这个例子中,它匹配`com.example.service`包下的所有类的所有方法。 在Spring中,我们还需要启用注解驱动的AOP支持。这通常在...
<aop:pointcut id="serviceMethods" expression="not execution(* com.babyhen.service..LoginService.*(..)) and execution(* com.babyhen.service..*Service.*(..))"/> <aop:advisor advice-ref="loggingAdvice...
*.parallel_execution_message_size=65535 *.parallel_max_servers=128 *.pga_aggregate_target=209715200 *.processes=150 *.recyclebin='OFF' *.remote_login_passwordfile='EXCLUSIVE' *.replication_dependency_...
这里,`loggingAspect`是切面的ID,`loggingService`是切面实现的bean引用,`logBefore`和`logAfter`是通知方法,`execution(* com.example.service.*.*(..))`是切入点表达式,匹配所有`com.example.service`包下的...
这里的切入点表达式`execution(* com.example.service.*.*(..))`匹配了`com.example.service`包下的所有类的所有方法。 2. **后置通知**: 后置通知在目标方法执行后触发,无论方法是否抛出异常。使用`@After`注解...
<!--配置连接池--> <bean id="dataSource" class=... <aop:pointcut id="pointcut" expression="execution(* com.itheima.service.impl.*.*(..))"/> <aop:advisor advice-ref="advice" pointcut-ref=
例如,`execution(* com.example.service.*.*(..))`匹配`com.example.service`包下的所有类的所有方法。 5. **通知的其他类型**:除了前置通知,你还可以定义其他类型的通知,例如: ```xml <!-- 后置通知 --> ...
切入点表达式`execution(* com.example.service.*.*(..))`表示所有在`com.example.service`包下的类中的方法。 最后,我们需要在Spring配置中启用AOP并注册这个切面。在XML配置中,这可以通过`<aop:config>`和`...
例如,`execution(* com.example.service.*.*(..))` 表示匹配`com.example.service`包下的所有类的所有方法。 五、实际应用 在实际项目中,AOP常用于日志记录、事务管理、性能监控等场景。通过注解,我们可以将...
在上面的例子中,`execution(* com.example.service.*.*(..))`表示匹配`com.example.service`包下的所有类的所有公共方法。`*`是通配符,`..`表示任意数量的参数。 **五、运行与测试** 在完成了上述配置后,我们...
- `<aop:pointcut>`:定义切入点表达式,例如`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有方法。 - `<aop:advisor>`:定义通知和切入点的关联,指定何时何地执行通知。 - `...
`execution(* com.example.service.*.*(..))`是一个切点表达式,表示执行com.example.service包下的所有类的所有方法时,触发通知。 **基于注解的AOP配置** 随着Spring的发展,基于注解的AOP配置变得越来越流行,...
其中,`execution(* com.example.service.*.*(..))`是切入点表达式,用于匹配需要拦截的方法。 3. **@After 后置通知** `@After`注解的方法会在目标方法执行后,无论结果如何都会被执行,通常用于资源清理。 ```...
例如,`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有类的所有方法。 3. 通知方法(Advice Method):在切点匹配时执行的方法,如上面的`logBefore`和`logAfter`。 五、AOP...
`logBefore`、`logAfter`和`logAround`是通知方法,`pointcut`属性定义了这些通知将在哪些方法上执行,`execution(* com.example.service.*.*(..))`表示匹配com.example.service包下的所有类的所有方法。 接下来,...
<aop:pointcut id="serviceMethods" expression="execution(* com.example.service.*.*(..))" /> <aop:aspect id="loggingAspect" ref="loggingAspectBean"> <aop:after-returning method="logAfterServiceCall...
`@Before`和`@After`注解分别用于定义前置和后置通知,而`execution(* com.example.service.*.*(..))`是切入点表达式,表示在`com.example.service`包下的所有类的所有方法调用之前和之后执行日志记录。 四、Spring...