spring-boot-knowledge-patch
Spring Boot changes since training cutoff (latest: 4.0) — modular starters, Jackson 3, Spring Framework 7, Security 7, Spring AI 1.0, HTTP service clients. Load before working with Spring Boot.
What this skill does
# Spring Boot Knowledge Patch
Covers Spring Boot 3.4–4.0, Spring Framework 7.0, Spring Security 7.0, and Spring AI 1.0.
## Index
| Topic | Reference | Key features |
|---|---|---|
| Boot 4.0 migration | [references/boot-4-migration.md](references/boot-4-migration.md) | Modular starters, Jackson 3, HTTP service clients, RestTestClient, breaking changes |
| Spring Framework 7.0 | [references/framework-7.md](references/framework-7.md) | `@Retryable` in core, BeanRegistrar, JmsClient, API versioning, JPA 3.2 |
| Spring Security 7.0 | [references/security-7.md](references/security-7.md) | PathPatternRequestMatcher, DSL cleanup, SPA CSRF, MFA, OAuth2 HTTP services |
| Spring AI 1.0 | [references/spring-ai.md](references/spring-ai.md) | ChatClient, `@Tool`, advisors/RAG, VectorStore, ChatMemory, MCP |
| Boot 3.4–3.5 features | [references/boot-3.4-3.5.md](references/boot-3.4-3.5.md) | Structured logging, actuator access model, MockMvcTester, env properties import |
---
## Quick Reference — Boot 4.0 Starter Renames
| Old (Boot 3.x) | New (Boot 4.0) |
|---|---|
| `spring-boot-starter-web` | `spring-boot-starter-webmvc` |
| `spring-boot-starter-oauth2-client` | `spring-boot-starter-security-oauth2-client` |
| `spring-boot-starter-oauth2-resource-server` | `spring-boot-starter-security-oauth2-resource-server` |
| `spring-boot-starter` | `spring-boot-starter-classic` (gradual migration) |
| `spring-boot-starter-test` | `spring-boot-starter-test-classic` (gradual migration) |
| _(bare `flyway-core`)_ | `spring-boot-starter-flyway` (now required) |
| _(bare `liquibase-core`)_ | `spring-boot-starter-liquibase` (now required) |
Convention: `spring-boot-<technology>`, `spring-boot-starter-<technology>`, `spring-boot-starter-<technology>-test`.
Every technology now has a test starter companion. `@WithMockUser` requires `spring-boot-starter-security-test`.
---
## Quick Reference — Jackson 3 (Boot 4.0 Default)
Jackson 3 uses `tools.jackson` package (annotations stay in `com.fasterxml.jackson.annotation`).
| Old (Jackson 2) | New (Jackson 3) |
|---|---|
| `@JsonComponent` | `@JacksonComponent` |
| `@JsonMixin` | `@JacksonMixin` |
| `JsonObjectSerializer` | `ObjectValueSerializer` |
| `Jackson2ObjectMapperBuilderCustomizer` | `JsonMapperBuilderCustomizer` |
| `spring.jackson.read.*` | `spring.jackson.json.read.*` |
| `spring.jackson.write.*` | `spring.jackson.json.write.*` |
Compatibility module: `spring-boot-jackson2` (deprecated). Properties under `spring.jackson2.*`.
---
## HTTP Service Clients (Boot 4.0)
Annotated interfaces get auto-configured implementations:
```java
@HttpExchange(url = "https://echo.zuplo.io")
public interface EchoService {
@PostExchange
Map<?, ?> echo(@RequestBody Map<String, String> message);
}
```
Group registration with per-group configuration (Framework 7.0):
```java
@ImportHttpServices(group = "weather", types = {WeatherApi.class})
@ImportHttpServices(group = "user", types = {UserApi.class})
class Config extends AbstractHttpServiceRegistrar {
@Bean
RestClientHttpServiceGroupConfigurer configurer() {
return groups -> groups.filterByName("weather")
.forEachClient((g, b) -> b.defaultHeader("X-Api-Key", key));
}
}
```
---
## RestTestClient (Boot 4.0)
Non-reactive alternative to `WebTestClient`. Works with `@SpringBootTest`, `@AutoConfigureMockMvc`, or random port:
```java
@Autowired
RestTestClient restTestClient;
```
---
## HttpMessageConverters Deprecated (Boot 4.0)
Replace custom `HttpMessageConverter` beans with customizers:
```java
@Bean
ServerHttpMessageConvertersCustomizer myCustomizer() {
return converters -> converters.jsonMessageConverter(myConverter);
}
// Also: ClientHttpMessageConvertersCustomizer for client-side
```
---
## Spring Framework 7.0 — @Retryable in Core
Spring Retry merged into `spring-core`. Enable with `@EnableResilientMethods`:
```java
@Configuration
@EnableResilientMethods
class AppConfig { }
@Service
class MyService {
@Retryable(maxAttempts = 3)
public String fetchData() { ... }
@ConcurrencyLimit(limit = 5)
public String limitedOp() { ... }
}
```
---
## Spring Security 7.0 — Essential Changes
`MvcRequestMatcher` and `AntPathRequestMatcher` removed. Use `PathPatternRequestMatcher`:
```java
http.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/**").hasRole("USER")
.anyRequest().authenticated()
);
```
DSL cleanup: `and()` removed (use lambda DSL), `authorizeRequests` removed (use `authorizeHttpRequests`).
SPA CSRF: `http.csrf(csrf -> csrf.spa());`
---
## Spring AI 1.0 — ChatClient
```java
@Autowired ChatClient chatClient;
String answer = chatClient.prompt()
.user("What is Spring Boot?")
.call()
.content();
// Structured output
record ActorFilms(String actor, List<String> movies) {}
ActorFilms result = chatClient.prompt()
.user("List films with Tom Hanks")
.call()
.entity(ActorFilms.class);
```
Tool calling:
```java
chatClient.prompt()
.user("What's the weather in London?")
.tools(weatherTools) // @Tool-annotated @Component
.call()
.content();
```
---
## Boot 3.4 — Structured Logging
```properties
logging.structured.format.console=ecs # ecs, gelf, or logstash
logging.structured.format.file=logstash
```
## Boot 3.4 — Actuator Access Model
Endpoint enabled/disabled replaced with fine-grained access control:
```properties
management.endpoints.access.default=unrestricted
management.endpoint.health.access=read-only
management.endpoints.access.max-permitted=read-only # operator cap
```
Values: `none`, `read-only`, `unrestricted`. Old `enabled` properties are deprecated.
## Boot 3.4 — RestClient HTTP Client Selection
```properties
spring.http.client.factory=jdk # http-components, jetty, reactor, jdk, simple
spring.http.client.redirects=dont-follow # default: follow
```
Auto-detection order: Apache HC > Jetty > Reactor Netty > JDK HttpClient > Simple.
---
## Key Breaking Changes (Boot 4.0 / Framework 7.0)
- **Undertow removed** — use Tomcat or Jetty (Servlet 6.1 baseline)
- **RestTemplate deprecated** — use `RestClient`
- **`javax.annotation`/`javax.inject` removed** — use `jakarta.*`
- **`ListenableFuture` removed** — use `CompletableFuture`
- **JUnit 6** baseline for test framework
- **Liveness/readiness probes** enabled by default
- **DevTools Live Reload** disabled by default
- **Embedded launch scripts** removed — use `java -jar` directly
- **MongoDB properties** renamed: `spring.data.mongodb.*` → `spring.mongodb.*`
- **Elasticsearch**: `RestClient` → `Rest5Client`
- **Hibernate**: `hibernate-jpamodelgen` → `hibernate-processor`
- **`@EntityScan`** moved to `org.springframework.boot.persistence.autoconfigure.EntityScan`
- **`spring.dao.exceptiontranslation.enabled`** → `spring.persistence.exceptiontranslation.enabled`
- **`management.tracing.enabled`** → `management.tracing.export.enabled`
- **`logging.console.enabled=false`** disables console logging
- **WAR on Tomcat**: use `spring-boot-starter-tomcat-runtime` instead of `spring-boot-starter-tomcat`
- **Spring Retry** dependency management removed — use Spring Framework's `@Retryable` instead
- **Authorization Server** now part of Spring Security; use `spring-security.version`
## Reference Files
| File | Contents |
|---|---|
| [boot-4-migration.md](references/boot-4-migration.md) | Modular starters, Jackson 3, HTTP services, RestTestClient, OpenTelemetry, breaking changes |
| [framework-7.md](references/framework-7.md) | `@Retryable`/`@ConcurrencyLimit`, BeanRegistrar, JmsClient, API versioning, JPA 3.2, HttpHeaders |
| [security-7.md](references/security-7.md) | PathPattern matchers, DSL cleanup, SPA CSRF, MFA, Authorization Server, OAuth2 HTTP services |
| [spring-ai.md](references/spring-ai.md) | ChatClient, `@Tool`, advisors/RAG, VectorStore, ChatMemory, MCP server/client |
| [boot-3.4-3.5.md](references/boot-3.4-3.5.md) | Structured logging, actuator access, RestClient config, MockMvcTester, bRelated in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.