zoukankan      html  css  js  c++  java
  • SPI

    SPI全称Service Provider Interface,即服务提供接口

    java中:

     ServiceLoader<RedisClient> serviceLoader = ServiceLoader.load(RedisClient.class);
        for(RedisClient redisClient: serviceLoader){
            System.out.println(redisClient);
        }
    

    这样编码的前提是在resources下,存在目录文件META-INF/service/com.xxxx.Interface
    文件内容则为实现这个接口的类,可以使用换行符一次配置多个服务实现

    com.xxx.JedisClientA
    com.xxx.JedisClientB
    

    这样做的好处是根据依赖自动装配实例,达到类似于自动注册的功能

    java SPI是有一些缺点的:

    • 如果同时依赖了多个实现包,则会将全部实现都初始化

    因此,诸如spring MVC,spring boot,都实现了自己的SPI,而没有直接使用java SPI

    spring在META-INF/spring.factories文件中定义了自动装配的类,Spring会读取这些文件,取出其中的接口及实现进行初始化

    org.springframework.beans.BeanInfoFactory=org.springframework.beans.ExtendedBeanInfoFactory
  • 相关阅读:
    python数字
    python字符串方法
    python操作符与流程控制
    网络基础和python(二)
    网络基础和python
    Ubuntu源更新
    make和makefile介绍
    JavaScript
    redis mac安装配置
    网络编程之socket(TCP,UDP)
  • 原文地址:https://www.cnblogs.com/windliu/p/9966084.html
Copyright © 2011-2022 走看看