--- name: java-spring-updates description: Resolve Java 25 and Spring Boot 4 API changes when editing dependencies, JSON mapping, Spring tests, security configuration, HTTP clients, nullability, or concurrency code. Use for migrations and to avoid obsolete examples in new code. --- # Java and Spring updates 1. Read [project context](references/project-context.md). Finish when the affected module's actual compiler, runtime, Boot, and relevant dependency versions are known or explicitly unresolved. 2. Select only the matching rows below. Read each selected rule before changing the affected API. A Boot major version alone does not prove every dependency version. 3. Preserve the application's dependency management and preview policy. For ordinary feature work, use compatible APIs; an available newer release is not an instruction to upgrade. 4. Check the changed imports, configuration, runtime behavior, and tests. Finish through the `spring-verify` skill, identifying any reference whose version could not be matched. | Trigger | Rule | | --- | --- | | Boot 4 dependencies or missing auto-configuration | [Choose the feature starter](rules/boot4-modular-starters.md) | | Boot 4 JSON mapper, annotations, modules or serialized contracts | [Match Jackson generation](rules/boot4-jackson3.md) | | Spring context mocks or spies | [Use current bean overrides](rules/boot4-test-overrides.md) | | Security 7 filter-chain configuration | [Use the Lambda DSL](rules/security7-lambda-dsl.md) | | Framework 7 outbound HTTP code | [Choose the appropriate client](rules/framework7-http-clients.md) | | Framework 7 nullable API or an adopted nullness checker | [Preserve null contracts](rules/framework7-null-contracts.md) | | Java 25 APIs marked preview or examples from older JDKs | [Check preview status and API shape](rules/java25-preview-contract.md) | | Replacing synchronized because of virtual-thread pinning | [Retire the obsolete workaround](rules/java25-monitor-pinning.md) | | Adopting stable Java 11–25 syntax or library APIs | [Feature selection index](../springboot-best-practices/references/java-11-25.md); apply the owning best-practice rule | ## References Use the rule's source links for the relevant section. Catalog sources record a review date and version scope; Spring reference branches and GitHub wikis can move. `node /dist/cli.mjs docs --root ` shows the source catalog. Add `--fetch SOURCE_ID` to cache one source; fetching does not establish compatibility with a different installed version. These rules are a curated starting set. Resolve unfamiliar minor-version changes against official versioned documentation and report gaps instead of extrapolating from a rule.