AgentSkillsCN

spring-boot-verify

验证Spring Boot 4.x项目是否具备正确依赖、配置与迁移准备。当分析pom.xml、build.gradle、application.yml、讨论Spring Boot项目设置、依赖版本、配置验证、版本兼容性、向Spring Boot 4迁移、废弃依赖,或当用户提到“验证项目”、“检查依赖”、“升级Spring Boot”、“迁移准备”、“Jackson 3”、“@MockBean废弃”或“Spring Security 7”时,就使用此技能。

SKILL.md
--- frontmatter
name: spring-boot-verify
description: Verify Spring Boot 4.x projects for correct dependencies, configuration, and migration readiness. Use when analyzing pom.xml, build.gradle, application.yml, discussing Spring Boot project setup, dependency versions, configuration validation, version compatibility, migration to Spring Boot 4, deprecated dependencies, or when user mentions "verify project", "check dependencies", "upgrade Spring Boot", "migration readiness", "Jackson 3", "@MockBean deprecated", or "Spring Security 7".
spring-boot-version: "4.0"

Spring Boot 4.x Project Verification

Analyzes Spring Boot projects for dependency compatibility, configuration correctness, and migration readiness.

Verification Workflow

  1. Detect Build System → Find pom.xml or build.gradle, extract Spring Boot version
  2. Analyze Dependencies → Check versions, find deprecated libraries, validate compatibility
  3. Validate Configuration → Check application.yml/properties, security config, actuator settings
  4. Generate Report → Structured markdown with severity levels and remediation code
  5. Lookup Docs → Use Exa MCP to fetch latest Spring Boot 4.x documentation when needed

Dependency Quick Reference

CheckSeverityAction
Spring Boot version < 4.0CRITICALUpgrade to 4.0.x
Jackson 2.x (com.fasterxml)CRITICALMigrate to Jackson 3 (tools.jackson)
javax.* importsCRITICALMigrate to jakarta.* namespace
@MockBean in testsERRORReplace with @MockitoBean
Undertow serverERRORSwitch to Tomcat or Jetty
Java version < 17ERRORMinimum Java 17 required
Gradle version < 8.14ERRORUpgrade Gradle (required for Kotlin 2.2/Boot 4)
spring-boot-starter-webWARNINGUse spring-boot-starter-webmvc
Missing Virtual ThreadsINFOEnable with spring.threads.virtual.enabled=true

Configuration Quick Reference

CheckSeverityAction
Security and() chainingCRITICALConvert to Lambda DSL closures
antMatchers() usageERRORReplace with requestMatchers()
authorizeRequests()ERRORReplace with authorizeHttpRequests()
All actuator endpoints exposedWARNINGLimit to health, info, metrics
100% trace samplingWARNINGUse 10% in production

Jakarta Namespace Migration

Critical for Spring Boot 3+: All javax.* packages must migrate to jakarta.*:

Old PackageNew Package
javax.persistence.*jakarta.persistence.*
javax.servlet.*jakarta.servlet.*
javax.validation.*jakarta.validation.*
javax.inject.*jakarta.inject.*
javax.annotation.*jakarta.annotation.*

Use Grep to find: import\s+javax\.

Spring Boot 4 New Features

FeatureConfigurationBenefit
Virtual Threadsspring.threads.virtual.enabled=trueHigh concurrency without WebFlux
JSpecify Null-SafetyAdd @NullMarked to package-infoFramework-wide null contracts
AOT CompilationEnabled by defaultFaster startup times

JSpecify Annotations

Spring Framework 7 uses JSpecify for null-safety:

java
@NullMarked  // Package or class level - all parameters/returns non-null by default
package com.example.myapp;

import org.jspecify.annotations.Nullable;

public class UserService {
    // @Nullable for parameters/returns that can be null
    public @Nullable User findById(Long id) { ... }
}

Tools to Use

  1. Glob → Find **/pom.xml, **/build.gradle*, **/application.{yml,properties}
  2. Grep → Search for deprecated patterns (@MockBean, com.fasterxml, .and(), import javax.)
  3. Read → Inspect build files and configuration
  4. Exa MCP → Fetch latest Spring Boot 4.x docs: mcp__exa__web_search_exa

Output Format

Generate verification reports with this structure:

markdown
## Spring Boot 4.x Verification Report

### Summary
- **Project**: {name}
- **Boot Version**: {detected version}
- **Issues Found**: {n} Critical, {n} Errors, {n} Warnings

### Critical Issues / Errors / Warnings
[Issue details with code remediation]

Detailed References

Critical Reminders

  1. Check Spring Boot version first — Many issues are version-specific
  2. Jakarta namespace migrationjavax.* to jakarta.* (required for Boot 3+)
  3. Jackson 3 namespace changecom.fasterxml.jackson to tools.jackson
  4. Security 7 Lambda DSLand() method removed, closures required
  5. Testing annotations changed@MockBean to @MockitoBean
  6. Virtual Threads — Enable with spring.threads.virtual.enabled=true for Java 21+
  7. Gradle 8.14+ — Required for Kotlin 2.2 and Spring Boot 4 support
  8. Use official docshttps://docs.spring.io/spring-boot/documentation.html

Related Skills

  • spring-boot-security — Deep security configuration verification
  • spring-boot-testing — Testing patterns and coverage analysis
  • spring-boot-observability — Actuator, metrics, and tracing setup
  • spring-boot-modulith — Module structure verification
  • domain-driven-design — DDD architecture patterns