java - 使用方面记录域对象(编译时编织)

标签 java aspectj compile-time-weaving

我想使用方面将日志记录代码与我的域逻辑分开。但是这些方面应该进行编译时编织而不是创建代理对象。

除了 AspectJ 之外还有哪些选项?

最佳答案

嗯,处理横向问题的另一种方法(如日志记录)是使用命令模式。这样,您可以使用 ServiceDelegate 来控制所有命令运行,并在此处控制每个横向关注点。

例如,每个命令都必须继承自定义 runCommand 方法的抽象类。然后调用 ServiceDelegate 以这种方式运行命令:

//take control of pre conditions
if(command.isAuthEnabled)
   //do what you want

command.runComman();

//take control of post conditions
if(command.isLogEnabled())
   //do what you want

也许这听起来很奇怪,但它是使用方面的另一种选择。它没有更好或更坏,它是不同的,这将是方面更适合的场景,以及命令会更好的其他场景。

关于java - 使用方面记录域对象(编译时编织),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794652/

相关文章:

java - 禁用处理中的关闭按钮

Java:使用定时器线程来确定父线程中的行为

java - 我为 AspectJ 使用哪个 maven 插件?

java - 在maven项目中使用AspectJ注释: weaving is not working

spring - @Configurable 不适用于在@PostConstruct 方法中初始化的对象

java - _programmatically_ 为 https urlconnections 找到所有支持的密码

java - 禁用浏览器中的后退按钮

java - Spring:标准日志方面(拦截器)

java - 如何在 OSGI (Apache Felix) 中为别人的 bundle 实现 AOP?

java - 在一个项目中使用Aspectj编译时编织和Java编译时注释处理