如何将 Log 依赖项注入非 Mojo class 实例?

How to inject the Log dependency to a non Mojo class instance?

有没有办法将 Log 依赖项注入非 Mojo class 实例?在 Mojo classes 中,只要我们想记录一些东西,我们只需调用 getLog(),但是在服务 class 的情况下会发生什么?

像下面这样的东西不起作用。

@Singleton
public class AServiceClass implements ServiceInterface {

    @Inject
    private Log log;
    ...
}

解决这个问题的一个简单方法是在我们调用它时将日志对象从 Mojo class 传递给服务方法,但我不想那样做。

所以,感谢 maven-checkstyle-plugin,我找到了解决方案。

要访问记录器,您需要扩展 AbstractLogEnabled

@Singleton
public class AServiceClass extends AbstractLogEnabled implements ServiceInterface {

    public void method(){
        // getLogger() gives you access to the logger
        getLogger().info(...)
    }
}