如何仅使用 java 配置在 spring 配置中定义方面

How to define an aspect inside spring config using java configuration only

这是一个如何使用注释定义方面的示例:

@Aspect
public class BlaBla() {
    @Pointcut(...)
    ...

    @Before(...)
    ...

    @After(...)
    ...
}

这是我通过研究找到的唯一方法。但是我希望 class BlaBla 不被注释和切入点方法污染。我希望它仍然是一个 POJO。如果我使用 xml spring 配置,我可以轻松做到:

<bean id="blaBla" class="BlaBla">...</bean>

<aop:config>
    <aop:aspect ref="blaBla">
        <aop:pointcut .../>
        <aop:before .../>
        <aop:after .../>
    </aop:aspect>
</aop:config>

但是,我没有使用 xml 配置,而是使用 Java 配置。基本上问题是,我怎么能对 spring 说 class BlaBla 是一个方面而不改变 BlaBla class 本身,而是在 java [=23= 中定义它] 注释 @Configuration spring 注释。

您需要制作另一个 class BlaBlaAopConfig 或类似的东西作为您的配置 class。

Java 配置与 xml 没有区别,您需要定义它并且应该将其与您的代码分开。您得到的唯一区别是,使用 java 配置优于 xml 更清晰(或更差,具体取决于个人喜好)。但是你永远不想在一个 class.

中混合 aop 和 pojo 代码

您将在@Pointcut 中定义您的目标class BlaBla