news 2026/3/30 11:57:21

Java进阶-SPI机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java进阶-SPI机制
SPI机制
  • 前言
  • 讲解代码
  • 过程分析

前言

  • 在主键版本中没有web.xml文件,springmvc如何通过继承AbstractAnnotationConfigDispatcherServletInitializer来启动SpringMVC?这就需要通过SPI机制来解决。先放一下大致思路:tomcat启动时会运行实现了servlet规范ServletContainerInitializer接口的实现类,而spring就是用SpringServletContainerInitializer类实现了该规范,因此执行时会实例化SpringServletContainerInitializer以达到启动mvc,另外在该类上有@HandlesTypes(WebApplicationInitializer.class)注解来实现mvc相关配置的加载,加载实现了WebApplicationInitializer的类

讲解代码

链接: JAVA之SPI机制

  • 以下讲解均已以上代码进行分析,请自行下载

过程分析

  1. java-spi它里面定义了Phone规范,以及默认的默认的实现类。

  2. java-spi-ext引用java-spi的模块可以实现扩展Phone接口规范

  3. 运行实现Phone的实现类并该类的路径在META-INF.services中配置

    public class ApplicationMain {
    public static void main(String[] args) {
    ServiceLoader serviceLoader=ServiceLoader.load(Phone.class);
    serviceLoader.forEach((Phone phone)->{
    if (phone instanceof DefaultPhone){
    phone.call();
    }

    if (phone instanceof IOSPhone){ phone.call(); } if (phone instanceof AndroidPhone){ phone.call(); } }); }

    }

从而达到了通过运行java-spi-ext模块来启动java-spi模块

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/23 2:15:50

JAVA进阶 THREAD学习10 多线程案例--计时器

标准库中计时器的使用 Timer类的实例化对象TimerTask类的是实例化对象–在run方法中存放运行的代码延迟的时间(相对时间,相对于当前时间之后的多少毫秒等) 时间需要安排schedule public static void main(String[] args) {System.out.println…

作者头像 李华
网站建设 2026/3/25 15:43:16

面试 Java 基础八股文十问十答第二期

面试 Java 基础八股文十问十答第二期 作者:程序员小白条,个人博客 ⭐点赞⭐收藏⭐不迷路!⭐ 11.什么是反射?反射有哪些作用?反射在Sping中的体现 (1): 什么是反射? 反射可以在运行时获取到一个类的所有信息&#xf…

作者头像 李华
网站建设 2026/3/26 13:25:46

毫米波V2I网络的链路层仿真研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

作者头像 李华
网站建设 2026/3/29 3:04:09

2026最全Gemini学生优惠申请指南

Google 在 2025 年正式推出 Gemini 学生优惠计划,符合条件的学生可在2026年1月31日前通过认证免费获得价值约 $300 的 Google AI Pro 服务长达 15 个月。这意味着你可以零成本使用:Gemini Advanced(2.5 Pro / 3 系列模型)2TB Goog…

作者头像 李华
网站建设 2026/3/26 16:03:11

Google广告频繁被拒如何解决?附解决与防封指南

在出海广告投放中,谷歌广告是众多品牌和独立站的核心渠道之一。然而,不少投手在实操中频繁遭遇广告被拒登,甚至账户直接被封,严重影响投放进度和预算使用效率。那么,Google广告被拒的原因到底有哪些?如何快…

作者头像 李华