This repository is a collection of composed annotations for use with the Spring Framework.
The current goal of this project is to brainstorm within the community and gather ideas on what kinds of composed annotations would be useful for Spring to officially support.
So... if you have an idea, share it!
As Spring Framework 4.3 approaches, the Spring team will review proposals from the community and decide on a reduced set of composed annotations to be officially supported by the Spring Framework or other projects in the Spring portfolio (e.g, Spring Boot, Spring Security, Spring Integration, etc.).
Feel free to provide us feedback and voice your opinion on which annotations should make it into Spring in SPR-13442.
Pull requests are also welcome and encouraged.
Although the spring-composed
project is currently a test bed for experimentation,
there is a good chance that annotations from this project will eventually be
incorporated into official Spring projects. In order to have your pull requests
accepted, we therefore ask that you sign the Contributor License Agreement and
document that you have done so in the commit message or comments of your pull request.
The Spring Composed project is released under version 2.0 of the Apache License.
- Spring Annotation Programming Model: official wiki page from the Spring team
- SPR-13442: JIRA issue related to this project
- Spring Events: sample application that uses various annotations from Spring Composed
- Spring Polyglot: a collection of "just for fun" composed annotations for use with Spring
The Spring Composed JAR is available from the Spring snapshot repository:
- Repository URL:
https://repo.spring.io/snapshot/
- Group ID:
org.springframework.composed
- Artifact ID:
spring-composed
- Version:
1.0.0.BUILD-SNAPSHOT
Spring Composed uses a Gradle-based build system. In the instructions
below, ./gradlew
is invoked from the root of the source tree and serves as
a cross-platform, self-contained bootstrap mechanism for the build.
You can check the current build status in the Spring Composed build.
- Git
- JDK 8 update 60 or later
- Spring Framework 4.2.2 or later
Most annotations in the spring-composed
project rely on @AliasFor
which
was introduced in Spring Framework 4.2 and therefore require at least Spring
Framework 4.2.2 to work properly.
Be sure that your JAVA_HOME
environment variable points to the jdk1.8.0
folder
extracted from the JDK download.
Build all JARs, distribution ZIP files, and docs:
./gradlew build
./gradlew install