版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013257767/article/details/89157792
- 教程
官方文档 - dropwizard的事务
dw添加事务的方式与spring的用法略有不同,需要在resource类的方法上添加 @UnitOfWork 注解
在内部实现上是通过javassist进行动态编程,实现了一套AOP(参考UnitOfWorkAspect类)。
@code
UnitOfWorkProxyFactory unitOfWorkProxyFactory = ...
UnitOfWork unitOfWork = ... // get annotation from method.
UnitOfWorkAspect aspect = unitOfWorkProxyFactory.newAspect();
try {
aspect.beforeStart(unitOfWork);
... // perform business logic.
aspect.afterEnd();
} catch (Exception e) {
aspect.onError();
throw e;
} finally {
aspect.onFinish();
}
}
本质是通过jersey的事件监听模式进行处理,bundle资源里注册EventListener,进行对request的监听。