321-frameworks-spring-boot-native-compilation

A set of guidelines for compiling Spring Boot applications into GraalVM native images, which are standalone executables built ahead of time instead of running mainly through a virtual machine.

In plain words
What is it for?
Use it to configure Maven or Gradle native builds, reduce reflection and dynamic loading, add native hints, apply ahead-of-time processing, and test compatibility.
Why use it?
It helps address slow startup, higher memory use, and runtime features that native compilation cannot automatically discover. The rules explain how to make code and resources compatible.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/jabrena/cursor-rules-spring-boot/321-frameworks-spring-boot-native-compilation
Clone the repo
git clone --depth 1 https://github.com/jabrena/cursor-rules-spring-boot

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 2,381 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.02381
Opus 5 $0.00000 $0.01190
Sonnet 5 $0.00000 $0.00476
Haiku 4.5 $0.00000 $0.00238

Measured 3d ago against content hash 94b37d318482, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

321-frameworks-spring-boot-native-compilation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/321-frameworks-spring-boot-native-compilation.mdc · 396 lines

How it starts

The opening of the file, as written. The whole thing — 396 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Spring Boot Native Compilation

Guidelines for building Spring Boot applications as GraalVM native images for improved startup time, reduced memory footprint, and enhanced performance characteristics.

Implementing These Principles

These guidelines are built upon the following core principles:

  • Compile-time analysis: All code paths must be discoverable at compile time
  • Minimal reflection usage: Avoid runtime reflection and dynamic class loading
  • Explicit configuration: Configure native hints for reflection, resources, and proxies
  • Profile-guided optimization: Use AOT processing and build-time optimizations
  • Resource efficiency: Optimize for reduced memory usage and faster startup

Table of contents

  • Rule 1: Configure Native Build Tools and Dependencies
  • Rule 2: Manage Reflection and Dynamic Features
  • Rule 3: Handle Resources and Configuration Files
  • Rule 4: Optimize Application Profiles for Native
  • Rule 5: Test Native Image Compatibility
  • Rule 6: Use AOT Processing and Build-time Hints

Rule 1: Configure Native Build Tools and Dependencies

Title: Proper Native Build Configuration Description: Configure Maven or Gradle with the Spring Boot Native plugin and GraalVM dependencies. Ensure all necessary build tools are properly set up for native compilation.

Good example:

<!-- pom.xml -->
<properties>
    <native.maven.plugin.version>0.9.28</native.maven.plugin.version>
    <spring-boot.version>3.5.0</spring-boot.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>native</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>process-aot</id>
                            <goals>
                                <goal>process-aot</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.graalvm.buildtools</groupId>
                    <artifactId>native-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>add-reachability-metadata</id>
                            <goals>
                                <goal>add-reachability-metadata</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Read the full file on GitHub · 396 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 396 lines · 0 tokens per session scan A 94b37d318482

Subscribe to this mod's changes

321-frameworks-spring-boot-native-compilation is a cursor rule published in the GitHub repository jabrena/cursor-rules-spring-boot (47 stars, last pushed 5mo ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 2,381 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.