如何仅使用 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
这是一个如何使用注释定义方面的示例:
@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