快捷搜索: 王者荣耀 脱发

slf4j自动绑定实现类原理

slf4j自动绑定实现类的方式基于约定:它要求你在实现类的包名和拿到LoggerFactory实例的文件路径必须是:org/slf4j/impl/StaticLoggerBinder.class
slf4j自动绑定实现类的方式基于约定:它要求你在实现类的包名和拿到LoggerFactory实例的文件路径必须是:org/slf4j/impl/StaticLoggerBinder.class
有了这个约定就好办了,slf4j在自己的基本类LoggerFactory里,直接调用实现类StaticLoggerBinder拿到LoggerFactory的实例
有了这个约定就好办了,slf4j在自己的基本类LoggerFactory里,直接调用实现类StaticLoggerBinder拿到LoggerFactory的实例
看代码:下面是我自己实现的一个:StaticLoggerBinder
看代码:下面是我自己实现的一个: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;
    }


}
经验分享 程序员 微信小程序 职场和发展