Skip to content

Repository files navigation

SpringGraph logo: three connected nodes

SpringGraph

Write Spring. Catch wiring mistakes before startup.

SpringGraph is an annotation processor that checks a supported subset of Spring constructor injection while your code compiles. Spring keeps constructing your beans; SpringGraph adds nothing to the runtime.

Status: experimental (0.x). Single-module Java projects. The 0.1.0-rc.4 pre-release is on Maven Central and GitHub Packages.

error: SG001: No static binding found for com.example.PaymentGateway.

  Dependency path:
    com.example.OrderController
      -> com.example.OrderService
        -> com.example.PaymentGateway

Documentation

Site: mrsluffy.github.io/spring-graph, including the project milestones. The same pages are in docs/:

Build from source

Requires JDK 21 to build. The processor itself targets Java 17.

./gradlew build
./gradlew :springgraph-processor:publishToMavenLocal

Modules: springgraph-processor (the product), springgraph-spring (construction-integration experiment, not released), examples/ (samples and pilots). springgraph-intellij is the IntelliJ plugin, a separate Gradle build (./gradlew -p springgraph-intellij build); see IntelliJ plugin.

Contributing

See CONTRIBUTING.md. To report a vulnerability, see SECURITY.md.

License

Licensed under the Apache License, Version 2.0.

Releases

Packages

Used by

Contributors

Languages