拦截的目的是针对异常消息的 i18n(国际化)。我的ResourceBundle已准备就绪,我可以从HTTP请求中读取用户区域设置。我想知道是否可以使用 AOP来处理异常(获取与收到的代码相关的错误消息并动态翻译)。
我发现使用AfterThrowing element可以使用Spring。在Guice中似乎没有任何等价物。
我想在Exception
类上使用constructor interceptor,但Guice只能拦截方法(参见this thread)。
我还发现我可以使用Java agent来拦截构造函数调用并进行一些委托。有一个库Byte Buddy来简化它,但我真的不想为这类问题添加一个依赖项。 (道歉,我是Java代理的新手)
与此同时,我认为创建一个辅助注射工厂(与Guice合作)。这意味着我将被限制使用它来抛出异常,而不是简单地抛出一个新实例并让魔法(AOP)发生。
修改的
有一个提议要将此问题作为“Guice post execution method interception”的副本关闭。我想强调一下,解决方案需要拦截整个应用程序的所有方法。我没有深入研究横切是如何运作的,但我认为拦截所有方法与仅在投掷后拦截异常之间存在差异。我错了?了解AOP和这类问题的最佳资源是什么?