SLF4J不同于其他?志框架,它不是?个真正的?志实现,?是?个抽象层,对?志框架制定的?种规范、标准、接?.所有SLF4J并不能独?使?,需要和具体的?志框架配合使?
SLF4J是??模式的典型应?(但不仅仅使?了??模式).
??模式(Facade Pattern)?称为外观模式,提供了?个统?的接?,?来访问?系统中的?群接?.
其主要特征是定义了?个?层接?,让?系统更容易使用。
- 原?:Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higherlevel interface that makes the subsystem easier to use.
- 解释:要求?个?系统的外部与其内部的通信必须通过?个统?的对象进?.??模式提供?个?层次的接?,使得?系统更易于使?
??模式主要包含2种??:
外观??(Facade):也称????,系统对外的统?接?.
?系统??(SubSystem):可以同时有?个或多个SubSystem.每个SubSytem都不是?个单独的类,?是?个类的集合.SubSystem并不知道Facade的存在,对于SubSystem??,Facade只是另?个客?端?已(即Facade对SubSystem透明)
?如去医院看病,可能要去挂号,?诊,化验,取药,让患者或患者家属觉得很复杂,如果有提供接待?员,只让接待?员来处理,就很?便
减少了系统的相互依赖.实现了客?端与?系统的耦合关系,这使得?系统的变化不会影响到调?它的客?端;
提?了灵活性,简化了客?端对?系统的使?难度,客?端?需关??系统的具体实现?式,?只需要和??对象交互即可.
提?了安全性.可以灵活设定访问权限,不在??对象中开通?法,就?法访问
SLF4J就是其他?志框架的??.SLF4J可以理解为是提供?志服务的统?API接?,并不涉及到具体的?志逻辑实现
那么为什么要引入日志门面呢?我们来看一下引入与不引入的区别就知道了
常?的?志框架有log4J,logback等.如果?个项?已经使?了log4j,?你依赖的另?个类库,假如是Apache Active MQ,它依赖于另外?个?志框架logback,那么你就需要把logback也加载进去
存在问题:
不同?志框架的API接?和配置?件不同,如果多个?志框架共存,那么不得不维护多套配置?件(这个配置?件是指???定义的配置?件).
如果要更换?志框架,应?程序将不得不修改代码,并且修改过程中可能会存在?些代码冲突.
如果引?的第三?框架,使?了多套,那就不得不维护多套配置
引????志框架之后,应?程序和?志框架(框架的具体实现)之间有了统?的API接?(???志框架实现),此时应?程序只需要维护?套?志?件配置,且当底层实现框架改变时,也不需要更改应?程序代码.
SLF4J就是这个?志??.
总的来说,SLF4J使你的代码独?于任意?个特定的?志API,实现解耦。这是?个对于开发API的开发者很好的思想.
关于《【JavaEE进阶】 关于?志框架(SLF4J)》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!