4.2.2 在切点中选择 bean

除了表 4.1 所列的指示器外,Spring 还引入了一个新的 bean() 指示器,它允许我们在切点表达式中使用 bean 的 ID 来标识 bean。bean() 使用 bean ID 或 bean 名称作为参数来限制切点只匹配特定的 bean。

例如,考虑如下的切点:

execution(* concert.Performance.perform()) and bean('woodstock')

在这里,我们希望在执行 Performance 的 perform() 方法时应用通知,但限定 bean 的 ID 为 woodstock。

在某些场景下,限定切点为指定的 bean 或许很有意义,但我们还可以使用非操作为除了特定 ID 以外的其他 bean 应用通知:

execution(* concert.Performance.perform()) and !bean('woodstock')

在此场景下,切面的通知会被编织到所有 ID 不为 woodstock 的 bean 中。

现在,我们已经讲解了编写切点的基础知识,让我们再了解一下如何编写通知和使用这些切点声明切面。

Last updated