如何将 Log 依赖注入到非 Mojo 类实例中?

Posted

技术标签:

【中文标题】如何将 Log 依赖注入到非 Mojo 类实例中?【英文标题】:How to inject the Log dependency to a non Mojo class instance? 【发布时间】:2021-10-26 05:50:18 【问题描述】:

有没有办法将Log 依赖注入到非 Mojo 类实例中?在 Mojo 类中,只要我们想记录某些内容,我们只需调用 getLog(),但在服务类的情况下会发生什么?

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

@Singleton
public class AServiceClass implements ServiceInterface 

    @Inject
    private Log log;
    ...

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

【问题讨论】:

你为什么不使用 lombok ?就像***.com/a/43902039/175554 一样,我认为它也应该适用于 maven 插件 @özkanpakdil 我用过AbstractLogEnabled 【参考方案1】:

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

当你想访问记录器时,你需要扩展AbstractLogEnabled。

@Singleton
public class AServiceClass extends AbstractLogEnabled implements ServiceInterface 

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

【讨论】:

以上是关于如何将 Log 依赖注入到非 Mojo 类实例中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Plexus 组件注入 Mojo

依赖注入与控制器类以外的类

Spring 依赖注入方式详解

如何使用手动依赖注入实例化一个类?

spring四种依赖注入方式

spring四种依赖注入方式