本文章主要想了解一下SpringBoot,Seata组件中都是怎么使用SPI功能。如何调用SPI的接口实现类,能够提供哪些便利。
SPI (Service Provider Interface) -- 接口服务发现机制
Spring SPI
SpringBoot中最方便的功能莫过于自动配置功能,只需要集成一个Starter的jar包。基本不需要配置就可以实现数据库调用,远程调用,服务配置,服务发现等功能。Spring其实也是使用自己实现的SPI机制来进行的初始化加载并自动配置。
源码解析
Spring的加载都是通过调用SpringApplication.run
来进行处理的。追踪一下这个注解,通过run方法可以很容易找到入口操作的地方。
这里就是部分的SPI入口,可以得知是加载了两个接口实现类,分别为ApplicationContextInitializer(应用上下文初始化类),ApplicationListener(应用监听类)