Tecnologia
Você abriu a vaga de Backend Sênior, leu "experiência com IA generativa no ecossistema Java" e pensou que sabia o suficiente. Aí veio a pergunta que separou a sala: "qual a diferença entre Spring AI 1.x e 2.0, e o que quebra no seu tool calling quando você migra?". Quem só tinha lido o título do release travou ali.
A partir de junho de 2026, essa pergunta entrou no roteiro das entrevistas técnicas de backend Java. O Spring AI 2.0 chegou em release candidate carregando o Spring Boot 4 como dependência obrigatória, e mudou o jeito como as ferramentas (tools) são executadas. Bora ver, na prática, o código antes e depois e a resposta que mostra senioridade de verdade.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 106
Existe uma forma de fazer seu microservice Java subir em 50 milissegundos em vez de 8 segundos, sem reescrever uma linha da regra de negócio. A maioria dos devs ainda empacota a JVM inteira dentro do container e paga a conta disso todo mês no Fargate.
Com GraalVM Native Image e o AWS SDK for Java 2.x, você compila a aplicação para um binário nativo e o startup despenca de cara. Nesse artigo você vai montar o build do zero, com Maven, Dockerfile e deploy no Fargate, e ainda vai entender por que essa decisão virou pergunta de entrevista sênior em fintech.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Cloud Computing
- Categoria: Cloud AWS
- Acessos: 98
Em abril de 2026, ferramentas de IA varreram o ecossistema Spring e encontraram 26 CVEs em um único mês. A release train que deveria chegar em maio foi adiada duas vezes. Chega agora, semana de 8 a 14 de junho. Se você tem Spring em produção, esta é a semana para agir.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 116
JDK 27 entrou em Rampdown Phase One em 4 de junho de 2026. GA previsto para 14 de setembro de 2026. Dois JEPs vão reduzir o footprint de memória de toda app Java em produção sem alterar uma linha de código: JEP 534 (Compact Object Headers por padrão) e JEP 523 (G1GC como default universal).
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 105
Se você tem código Spring AI que usa toolNames(), SpringBeanToolCallbackResolver ou depende do loop interno de tool execution dentro do ChatModel, ele vai quebrar quando o Spring AI 2.0 GA sair. O RC1 lançado em 06/06/2026 consolida todas as mudanças. Aqui está o guia completo com before/after para cada breaking change do Tool Calling Overhaul.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 101
Spring Boot 3.5 encerra suporte OSS no dia 30/06/2026. Se o seu projeto ainda está no Boot 3.x, você tem menos de 30 dias para planejar a migração. O Boot 4 exige Java 21, elimina JUnit 4 do classpath padrão, força Hibernate 7 e remove Undertow. Aqui está o roteiro completo com código before/after para cada breaking change.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 126
Existe um jeito de escrever testes que o PO entende, o QA valida e o dev executa, tudo com o mesmo arquivo. Com Cucumber 7.34 e Spring Boot 3, o setup completo leva menos de 15 minutos. A maioria dos devs Java ainda não usa, e esse artigo vai mudar isso.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 91
Você migrou a aplicação pro Spring Boot 4, rodou a suíte de testes inteira, deu tudo verde. Subiu em produção numa terça tranquila. Aí, três dias depois, o time de suporte abre um chamado: a API tá devolvendo HTTP 200 com payload pela metade, sem estourar exceção nenhuma, sem log de erro, sem alerta. O seu catch (IOException e) que sempre pegou os problemas de JSON parou de pegar. E ninguém te avisou.
O culpado tem nome: Jackson 3. O Spring Boot 4 trocou o serializador JSON padrão e, junto com ele, veio uma mudança silenciosa na hierarquia de exceções que derruba o tratamento de erro de quem migrou no automático. Bora entender o que mudou e corrigir isso do jeito certo, antes que o cliente descubra primeiro.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 98
Você atualizou pro Spring Boot 4, rodou os testes locais, deu deploy. Aí o primeiro POST em produção voltou 403. Sem stack trace, sem log de erro, sem nada útil no console. Você revisa o token JWT, mexe no CORS, confere o filtro de autenticação, e tudo parece certo. O GET funciona, mas todo método de escrita morre com 403.
A causa raiz não está no seu código. O Spring Security 7, que vem embarcado no Spring Boot 4, ligou a proteção CSRF nas suas APIs sem te avisar. Nesse artigo você vai entender por que isso acontece, como diagnosticar em dois minutos e como corrigir do jeito certo, sem sair desabilitando segurança no grito.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 92
Existe um jeito de cortar custo de cloud, acelerar o startup e reduzir bug de concorrência ao mesmo tempo, e a maioria dos times Java ainda não montou esse argumento para o gestor. Não é uma feature isolada, é o conjunto que o Java 25 LTS entrega de uma vez. Hoje você sai com os números e o código na mão para propor a migração.
A cena é sempre a mesma. Aquela reunião de planejamento onde alguém sugere subir a versão do Java, e o gestor pergunta a coisa mais justa do mundo: "por que migrar agora, qual o retorno?". Se a sua resposta é "porque é a versão nova", você perdeu o argumento. Bora montar uma resposta que cabe num slide e se sustenta em produção.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 108
Existe uma forma de expor qualquer serviço Spring Boot 4 como ferramenta de um agente de IA sem escrever uma linha de código de infraestrutura, e a maioria dos devs Java ainda não sabe que ela chegou de vez. Com o Spring AI 2.0, três anotações (@McpTool, @McpToolParam e @McpResource) fazem um método comum virar uma tool que o Claude, o ChatGPT ou qualquer cliente MCP enxerga e chama sozinho.
Neste artigo a gente vai do zero a um MCP Server rodando: o starter no build, o serviço anotado, a configuração de produção e o cliente consumindo. Tudo com código que parece de produção, do jeito que os sêniores fazem. Bora construir.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 118
Artigo sobre Spring Boot EOL.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 112
O erro número 1 de quem coloca o Spring Cloud Config Server em produção hoje é tratar o filesystem do pod como se fosse só seu. Volume compartilhado, basedir clonado pelo JGit e um vizinho de namespace que troca o caminho por um symlink na hora certa. O resultado é leitura e escrita de arquivos fora do diretório esperado.
Esse cenário virou o CVE-2026-41002 (CVSS 7.4), divulgado em 2026-05-06 e corrigido no Spring Cloud Config 4.3.3 e 5.0.3. É uma falha de TOCTOU, e ela cai direto na arquitetura cloud-native que a maioria de nós usa sem pensar duas vezes. Bora entender o que acontece e como blindar isso hoje mesmo.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Desenvolvimento
- Categoria: DevOps
- Acessos: 99