Tecnologia
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: 171
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: 215
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: 210
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: 172
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: 251
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: 179
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: 199
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: 173
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: 181
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: 220
Artigo sobre Spring Boot EOL.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 225
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: 175
Você migrou pro Spring Boot 4, subiu em produção e de repente todo POST e PUT começou a responder 403 Forbidden. O GET funciona liso. O curl local passa. Os testes unitários estão verdes. Mas o front quebrou inteiro e ninguém mexeu numa linha de controller sequer. Você abre o log e não tem stack trace, não tem exceção de negócio, não tem nada. Só um 403 seco que aparece antes da requisição chegar no seu código.
Calma, não é maldição. A causa raiz não está no seu código: é o CSRF que agora vem ligado por padrão no Spring Security 7, que o Spring Boot 4 trouxe embutido. Nesse artigo a gente vai entender por que esse 403 aparece, qual a diferença entre o jeito errado e o jeito certo de resolver, e como ajustar sua configuração de segurança sem abrir um buraco que vai te assombrar na próxima auditoria. Bora?
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Java
- Categoria: Spring Framework (Boot, Data, MVC , WEB, Security, HAL e outros)
-
Também disponível:
- Acessos: 257