Micronaut 桥接 Spring AOP
2023-03-06 13:37 更新
虽然 Micronaut 的设计是基于编译时的方式,不依赖于 Spring 依赖注入,但在 Spring 生态系统中仍然有很多不直接依赖于 Spring 容器的价值。
您可能希望在 Micronaut 中使用现有的 Spring 项目,并配置要在 Micronaut 中使用的 bean。
您可能还希望利用来自 Spring 的现有 AOP 建议。其中一个例子是 Spring 对带有@Transactional 的声明式事务的支持。
Micronaut 提供了对基于 Spring 的事务管理的支持,而不需要 Spring 本身。只需将 spring 模块添加到您的应用程序依赖项中:
Gradle | Maven |
|
|
这还需要添加 spring-annotation 模块依赖作为注解处理器:
Gradle | Maven |
|
|
如果你使用 Micronaut 的 Hibernate 支持,你已经获得了这个依赖,并且 HibernateTransactionManager 已经为你配置好了。
这是通过拦截用 Spring 的 @Transactional 和 TransactionInterceptor 注释的方法调用来完成的。
这里的好处是您可以使用 Micronaut 的编译时无反射 AOP 来声明程序化的 Spring 事务。例如:
使用@Transactional
import org.springframework.transaction.annotation.Transactional;
...
@Transactional
public Book saveBook(String title) {
...
}
以上内容是否对您有帮助:
更多建议: