编译时绑定在Java中是如何工作的,这是什么意思?
绑定还有哪些其他类型,以及它们如何工作?
如果我在编译时在pom中提供例如slf4j-api-1.7.28.jar,但在运行时不提供它,而在运行时提供slf4j-jcl-1.7.28.jar,会发生什么呢?
在编译时如何连接有关首选实现的信息?
在其他日志记录框架(如jakarta通用日志记录,log4j,java util日志记录)中如何解决?
阅读slf4j文档时遇到上述问题。
SLF4J binding states:
SLF4J不依赖任何特殊类的装载机。实际上,每个SLF4J绑定在编译时都进行了硬连线,以使用一个且仅一个特定的日志记录框架。例如,slf4j-log4j12-1.7.28.jar绑定在编译时绑定为使用log4j。
Similarly LoggerFactorygetILoggerFactory()
返回正在使用的ILoggerFactory实例。 ILoggerFactory实例在编译时与此类绑定。