Spring AI Spring Boot Auto Configuration modules providing automatic setup for AI models, vector stores, MCP, and retry capabilities
Spring AI autoconfiguration includes built-in support for Ahead-of-Time (AOT) compilation and GraalVM native images.
Runtime hints are automatically registered for reflection, resource access, proxy generation, and serialization.
/**
* Runtime hints registrar for MCP client common module
*
* Location: mcp-client-common/aot/McpClientAutoConfigurationRuntimeHints.java
* Registered in: META-INF/spring/aot.factories
*
* Registers:
* - Reflection hints for MCP schema classes
* - Resource patterns for JSON schemas
* - Serialization hints for protocol types
* - Proxy hints for client interfaces
*/
class McpClientAutoConfigurationRuntimeHints implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader);
}
/**
* Runtime hints registrar for Apache HttpClient-based MCP transports
*
* Location: mcp-client-httpclient/aot/McpClientAutoConfigurationRuntimeHints.java
*/
class McpClientAutoConfigurationRuntimeHints implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader);
}
/**
* Runtime hints registrar for WebFlux-based MCP transports
*
* Location: mcp-client-webflux/aot/McpClientAutoConfigurationRuntimeHints.java
*/
class McpClientAutoConfigurationRuntimeHints implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader);
}# META-INF/spring/aot.factories
org.springframework.aot.hint.RuntimeHintsRegistrar=\
org.springframework.ai.mcp.client.common.autoconfigure.aot.McpClientAutoConfigurationRuntimeHints,\
org.springframework.ai.mcp.client.httpclient.autoconfigure.aot.McpClientAutoConfigurationRuntimeHints,\
org.springframework.ai.mcp.client.webflux.autoconfigure.aot.McpClientAutoConfigurationRuntimeHints# Build native image with Maven
./mvnw -Pnative native:compile
# Build native image with Gradle
./gradlew nativeCompile
# Run native executable
./target/my-spring-ai-app
# Build Docker image with native executable
./mvnw -Pnative spring-boot:build-imageFor custom classes, provide runtime hints:
@Configuration
public class CustomRuntimeHints {
@Bean
public RuntimeHintsRegistrar customHints() {
return (hints, classLoader) -> {
// Register custom classes
hints.reflection()
.registerType(MyCustomTool.class,
MemberCategory.INVOKE_PUBLIC_METHODS);
// Register resources
hints.resources()
.registerPattern("custom/*.json");
// Register for serialization
hints.serialization()
.registerType(MyCustomTool.class);
};
}
}✅ Chat models, embedding models, and image models
✅ MCP client and server functionality (all transports)
✅ Vector stores (all 20 implementations)
✅ Retry and observation capabilities
✅ Tool calling and function callbacks
✅ Chat memory with all repository backends
✅ Spring Cloud Bindings integration
# Collect runtime hints using agent
java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image \
-jar target/my-app.jar
# Enable verbose native image build
./mvnw -Pnative native:compile -Dverbose
# Test native image locally before deployment
./target/my-spring-ai-app