小编tau*_*nen的帖子

如何在Guice中定义方法拦截器的顺序?

有时候需要知道拦截Guice中方法调用的方法拦截器的顺序.一个简单的示例场景是使用guice-persist提供的@Transactional方法拦截器和自定义的@Retry方法拦截器.重试拦截器必须在事务拦截器之外运行,以确保重试不在同一事务中执行.

在Spring中,您可以使用拦截器的Ordered接口来确保在重试拦截器中执行事务拦截器.有没有办法在Guice中实现同样的目标?

methods aop guice interceptor

11
推荐指数
1
解决办法
2302
查看次数

正确的方法来停止自定义logback异步appender

我使用亚马逊的Java SDK创建了Amazon SQS和SNS logback appender.基本的appender使用同步Java API,但我也通过扩展ch.qos.logback.classic.AsyncAppender类创建了两者的异步版本.

使用异步appender停止logback记录器上下文不会按预期工作.当上下文停止时,所有异步appender都会在退出之前尝试刷新剩余事件.问题源于ch.qos.logback.core.AsyncAppenderBase#stop方法,它会中断工作线程.当Amazon SDK仍在处理排队事件并产生结果时触发中断com.amazonaws.AbortedException.在我的测试中,AbortedException当SDK处理来自API的响应时发生了这样的事情,因此实际的消息经历了,但情况可能并非总是如此.

即使工作者仍应处理剩余的事件队列,是否打算使用logback中断工作线程?如果是这样,我怎样才能解决AbortedException由中断引起的问题?我可以覆盖整个停止方法并删除中断,但这需要复制粘贴大部分实现.

java logback appender aws-sdk

5
推荐指数
1
解决办法
1890
查看次数

标签 统计

aop ×1

appender ×1

aws-sdk ×1

guice ×1

interceptor ×1

java ×1

logback ×1

methods ×1