首页 > 代码库 > slf4j自动绑定实现类原理

slf4j自动绑定实现类原理

slf4j自动绑定实现类的方式基于约定:它要求你在实现类的包名和拿到LoggerFactory实例的文件路径必须是:org/slf4j/impl/StaticLoggerBinder.class

有了这个约定就好办了,slf4j在自己的基本类LoggerFactory里,直接调用实现类StaticLoggerBinder拿到LoggerFactory的实例

看代码:下面是我自己实现的一个:StaticLoggerBinder

public class StaticLoggerBinder {

    private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
    private static final String loggerFactoryClassStr = MyLoggerFactory.class.getName();

    public static final StaticLoggerBinder getSingleton() {
        return SINGLETON;
    }


   /**
     * 初始化我自己的LoggerFactory
     *

     */

    private StaticLoggerBinder() {
        loggerFactory = new MyLoggerFactory();
    }

    private final ILoggerFactory loggerFactory;

    /**
     * 得到实现类
     *
     * @return
     */
    public ILoggerFactory getLoggerFactory() {
        return loggerFactory;
    }

    /**
     * 得到实现类的名字
     *
     * @return
     */
    public String getLoggerFactoryClassStr() {
        return loggerFactoryClassStr;
    }


}