<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>SPI on Matheus Oliveira</title><link>https://blog.omatheusmesmo.dev/tags/spi/</link><description>Recent content in SPI on Matheus Oliveira</description><image><title>Matheus Oliveira</title><url>https://blog.omatheusmesmo.dev/images/duke.svg</url><link>https://blog.omatheusmesmo.dev/images/duke.svg</link></image><generator>Hugo -- 0.146.0</generator><language>pt-br</language><lastBuildDate>Sat, 13 Jun 2026 10:00:00 -0300</lastBuildDate><atom:link href="https://blog.omatheusmesmo.dev/tags/spi/index.xml" rel="self" type="application/rss+xml"/><item><title>Java SPI: o superpoder embutido que todo desenvolvedor deveria conhecer</title><link>https://blog.omatheusmesmo.dev/posts/java-spi-serviceloader-poder/</link><pubDate>Sat, 13 Jun 2026 10:00:00 -0300</pubDate><guid>https://blog.omatheusmesmo.dev/posts/java-spi-serviceloader-poder/</guid><description>Um guia prático sobre o Service Provider Interface (SPI) do Java. Aprenda ServiceLoader do zero com código real do sistema de mappers de um emulador de NES, substitua o arquivo manual META-INF/services pelo Google AutoService, declare serviços com module-info do JPMS e veja como o Quarkus troca o ServiceLoader em runtime por descoberta de beans CDI em tempo de build.</description></item></channel></rss>