【发布时间】:2017-11-07 17:09:46
【问题描述】:
大家好,我是 Java 和 JSF 的新手,我的老板让我自动记录使用 JSF 制作的 Web 应用程序中的每个事件或方法调用
请帮忙
【问题讨论】:
大家好,我是 Java 和 JSF 的新手,我的老板让我自动记录使用 JSF 制作的 Web 应用程序中的每个事件或方法调用
请帮忙
【问题讨论】:
您正在寻找单个用例,而我在处理多个用例尤其是为了减少我最新项目的源代码库时……我发现了面向方面编程形式的闪亮东西 -> Java 世界中的 AspectJ。
您可以在这里找到非常好的文章: http://www.yegor256.com/2014/06/01/aop-aspectj-java-method-logging.html
您可以使用自定义注释来实现该行为,或者只是将其硬链接到您的应用程序中,因此您无需在代码中指定任何内容,并且每个事件都将使用特定行为自动记录(记录有/无数据等) .)。
另一个很好的例子是: http://www.baeldung.com/spring-performance-logging
只需添加,就像您记录事件一样,您可以在错误处理程序的情况下创建 AspectJ 自动记录。
不仅如此,您还可以在整个应用程序中以完全通用的方式以统一的方式处理所有错误,而无需在错误/事件处理程序中编写简单的代码行...
注意: 不要重新发明轮子,因此请看这里,因为其他人收集了有用的 AOP,以便开箱即用地在您的项目中重用 :-)) 开源是一个很棒的社区: https://github.com/jcabi/jcabi-aspects
【讨论】:
如果您的 managedbeans 是 CDI,您可以为此目的使用拦截器。在这里查看拦截器的官方教程https://docs.oracle.com/javaee/7/tutorial/cdi-adv006.htm
拦截器可以拦截 CDI 中的每个方法调用,您可以将日志代码连接到拦截器方法中。
【讨论】: