Skills for creating, testing, reviewing, migrating and guarding Spring Boot 4 projects with Java 25: project scaffolding with architecture patterns, Boot 4 test templates, code review, Boot 3 to 4 migration, and a team harness of build gates and agent hooks.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Single source for Java version advice. Other skills link here. Update this file when a new JDK ships.
Last checked: 2026-10-17.
| Use | Java version |
|---|---|
| Default for new projects | 25 (current LTS) |
| Accept when the user asks | 21 (previous LTS) or 17 (Boot 4 minimum) |
| Newest release | 27 (GA 2026-09-15, non-LTS) |
| Next LTS | 29 (expected September 2027) |
Rules:
pom.xml or build.gradle before you give version-specific advice.Code compiled with --enable-preview runs only on the same JDK feature release. Preview APIs also change shape. Do not copy a preview sample to a different JDK.
| API | JDK 25 | JDK 26 | JDK 27 |
|---|---|---|---|
| Lazy init | StableValue.of() + orElseSet(...) (JEP 502) | LazyConstant.of(supplier) (JEP 526) | LazyConstant.of(supplier); isInitialized/orElse removed; Set.ofLazy added (JEP 531) |
| Structured concurrency | StructuredTaskScope.open(Joiner) (JEP 505) | Sixth preview (JEP 525) | join() throws ExecutionException; third type parameter for the exception; Joiner.awaitAll() removed (JEP 533) |
| Primitive patterns | JEP 507 | JEP 530 | JEP 532 (unchanged from 26) |
final fields prints a warning. A future release will deny it. Serialization, mocking, and some injection libraries do this. Test with --illegal-final-field-mutation=deny to find them early. Prefer constructor injection.java.net.http.HttpClient (JEP 517).-XX:+UseSerialGC.-XX:-UseCompactObjectHeaders.