java - 如何通过构造函数中的依赖注入(inject)而不使用框架来应用记录器

标签 java oop

我正在做没有框架(没有 spring/guice)的依赖注入(inject),只是普通的 java(我需要)。 我的问题是关于记录器 记录器呢? 我通常在

中实例化它
private static logger = Logger.getLogger(myclass); 

但这不是依赖注入(inject),我应该将记录器传递给每个构造函数吗?这看起来很奇怪……那么如何处理记录器和依赖注入(inject)呢?

PS 我更喜欢使用 ctor 而不是 setter 的 DI,这样我很清楚我的类(class)需要什么。

谢谢

最佳答案

一种解决方案是使用外观框架,例如 slf4j . Logger.getLogger(...) 然后实际上是获取日志库并使用它。更改日志库是一个简单的配置问题。

The Simple Logging Facade for Java or (SLF4J) serves as a simple facade or abstraction for various logging frameworks, e.g. java.util.logging, log4j and logback, allowing the end user to plug in the desired logging framework at deployment time.

所以它与使用 DI 非常相似,但在这种情况下可能更合适。

关于java - 如何通过构造函数中的依赖注入(inject)而不使用框架来应用记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14156957/

相关文章:

java - Heroku Slug 尺寸超出限制 超过 300m

java - com.microsoft.sqlserver.jdbc.SQLServerException : Incorrect syntax near 'GO'

java - 为日期对象实现 Parcelable - NullPointerException

java - 使用 DropWizard 计时器查找代码块的执行时间

java - 在tomcat上部署war文件时出错

php - 使用 Twig 显示以哈希开头的对象属性

php - Laravel:从 Blade 模板调用 Controller 类的方法

php - 使用 php 进行有效的表单处理

c++ - 在继承方面需要帮助

language-agnostic - 工厂和模式如何关联?