Spring Inspector é uma ferramenta de linha de comando (CLI) em Java para análise estática de projetos Spring Boot e Spring Framework.
A ferramenta percorre o código-fonte por meio de AST (Abstract Syntax Tree) e gera relatórios com métricas e alertas relacionados a controllers, beans e endpoints, ajudando a identificar possíveis problemas estruturais logo no início do desenvolvimento.
- Contagem de beans Spring, como
@Component,@Service,@Repository,@Controllere@RestController - Detecção de endpoints que recebem
@RequestBodysem anotações de validação, como@Validou@Validated - Identificação de rotas HTTP duplicadas
- Detecção de controllers com excesso de endpoints
- Execução de todas as análises com uma única flag
- Java JDK 25 ou superior instalado e configurado nas variáveis de ambiente (
JAVA_HOME)
git clone https://github.com/seu-usuario/spring-inspector.git
cd spring-inspectorPara executar o spring-inspector diretamente de qualquer diretório no terminal, adicione o caminho do diretório bin à variável de ambiente PATH.
- Garanta que o script de execução possui permissão de execução:
chmod +x bin/spring-inspector
- Adicione a seguinte linha ao seu arquivo de configuração (
~/.bashrc,~/.zshrc, etc.) ou execute na sessão atual:export PATH="$PATH:/caminho/absoluto/para/spring-inspector/bin"
(No Windows, o arquivo bin/spring-inspector.cmd é reconhecido nativamente como executável e não necessita de permissões adicionais).
- Abra o menu Iniciar e pesquise por Editar as variáveis de ambiente do sistema.
- Clique em Variáveis de Ambiente...
- Em Variáveis do sistema (ou do usuário), selecione
Pathe clique em Editar. - Clique em Novo e adicione o caminho completo da pasta
bin(exemplo:C:\projetos\spring-inspector\bin). - Clique em OK para salvar.
Com o bin adicionado ao PATH, você pode rodar o spring-inspector diretamente a partir de qualquer pasta:
spring-inspector /caminho/para/projeto-spring -aUso: spring-inspector [-acehV] <path>
| Flag | Longa | Descrição |
|---|---|---|
<path> |
— | Caminho do projeto Spring a ser analisado |
-a |
--all |
Executa todas as análises disponíveis |
-c |
--count |
Executa a contagem de beans e a verificação de validações ausentes |
-e |
--endpoint |
Verifica endpoints duplicados e controllers com excesso de rotas |
-h |
--help |
Exibe a ajuda da CLI |
-V |
--version |
Exibe a versão atual da ferramenta |
Executar todas as análises:
spring-inspector ./meu-projeto-api -aExecutar apenas a análise de beans e validações:
spring-inspector ./meu-projeto-api -cExecutar apenas a análise de endpoints:
spring-inspector ./meu-projeto-api -e .::::::::::::::::.
.-====================-.
.========================.
:==========================:
:=======-.. .:============:
.======:..:=====-:..-==========.
:======..-==========:.:==========:
.:======:.-============:.-==========:.
.:=======..==============..===========:.
.========..==============.:============.
.========:.-============:.-============.
.:========:.:==========..:============:.
.:========-...-====-....:===========:.
:==========::....:-==-..:========:
:=====================-..-=====:
:======================-..-==:
:=======================-==:
.========================.
.-====================-.
..::::::::::::::::..
Analyzing your Spring project ...
================================================================================
Analysis: Bean Counting ( 0 issues and 7 findings )
================================================================================
[INFO]
Bean : Controller
Name : Counting of Controller
Description : Count: 24
[INFO]
Bean : Service
Name : Counting of Service
Description : Count: 35
[INFO]
Bean : Repository
Name : Counting of Repository
Description : Count: 25
================================================================================
Duration: 0.79 ms
================================================================================
================================================================================
Analysis: Missing Request Validation ( 1 issues and 0 findings )
================================================================================
[WARNING] MISSING_REQUEST_VALIDATION
Bean : Controller
Name : Missing Request Validation
Description : Method parameter is not being validated.
File : ./src/main/java/com/exemplo/controllers/UserController.java
Line : 45
Suggestion : Add @Valid before the parameter request
================================================================================
Duration: 2.21 ms
================================================================================
================================================================================
Analysis: Duplicate Endpoints ( 0 issues and 1 findings )
================================================================================
[INFO] DUPLICATE_ENDPOINT
Bean : Controller
Name : Duplicate endpoints
Description : Everything is OK :)
================================================================================
Duration: 0.86 ms
================================================================================
==========================================================================================
Summary
==========================================================================================
Issues:
INFO : 4
WARNING : 1
ERROR : 0
Analyzers executed:
3
Total duration:
3.86 ms
Project:
./meu-projeto-api
A ferramenta ainda está em evolução. Próximas melhorias planejadas:
- Melhor suporte a diferentes estilos de projeto Spring
- Detecção de mais padrões de problema em controllers e services
- Classificação de severidade para os alertas
- Exportação dos resultados para JSON e/ou HTML
- Melhor integração com CI/CD
- Suporte a mais tipos de análise arquitetural
- Melhorias na identificação automática de DTOs e entidades
- Java 25
- JavaParser
- Picocli
- Maven Wrapper
Este projeto está licenciado sob a licença Apache-2.0 license.