将aspectj应用于完整包而不是特定类

时间:2013-12-13 10:42:43

标签: java log4j aspectj logback

如何在完整包而不是特定类上应用aspectj?

我的代码就像这样

public abstract aspect BasicLogModel {

ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory
        .getLogger(ModArc.class);

pointcut greeting() : execution(* Model.ModArc*(..));

// this function will work before any function execution
before() : greeting() {
    }
}

使用这个代码记录器只适用于ModArc类,但我需要记录器才能获得完整的包,这是模型,我需要做出哪些更改请给出一些建议。

提前致谢

2 个答案:

答案 0 :(得分:1)

Atm我无法测试我写下的内容,但我会写这样的内容

execution(* Model..*(..))

希望它有所帮助。

答案 1 :(得分:0)

我用它来记录org.example.batch包中的每个方法调用。注意'..'它可能(或不)对你有用

execution(* org.example.batch..*.*(..))

The ".." wildcard matches any sequence of characters that start and end with a ".", so it can be used to pick out all types in any subpackage, or all inner types
更新:如果您正在尝试基于aspectj实现日志记录解决方案 - 它已经是described