Skip to content

makiftutuncu/spring-boot-crud

Repository files navigation

spring-boot-crud

spring-boot-crud is a library to help build CRUD applications easily with Spring Boot. As a developer, you probably wrote simple CRUD applications many times and wished you could get rid of most of that boilerplate around designing the APIs, services, repositories, etc. It is repetitive, boring and error-prone. spring-boot-crud offers an abstract and opinionated way to avoid most of this. You only need to care about your data models. After defining data models and a few other glue types, you get a full-featured CRUD application (and its tests!) for free. The library is highly generic and abstract. It utilizes type parameters and type constraints for additional type-safety while enforcing some best practices.

Latest Version Java Version Kotlin Version Spring Boot Version
0.5.1 17 1.8.21 3.0.6

Table of Contents

  1. Modules
  2. Examples
  3. Development & Testing
  4. Releases
  5. Contributing
  6. License

Modules

spring-boot-crud consists of 2 modules. You can click on a module for more information and detailed instructions.

Name Details Documentation
spring-boot-crud-api API implementations
spring-boot-crud-test Test implementations

Examples

There are template projects you can use to create new repositories on GitHub with an existing project setup using spring-boot-crud.

Development & Testing

This project is written in Kotlin and built with Gradle. Standard Gradle tasks like clean, compileKotlin, compileTestKotlin and test can be used during development and testing.

If you don't have Gradle installed, you can replace gradle commands with ./gradlew to use Gradle wrapper.

To test your changes during development:

  1. Bump your version in build.gradle.kts and append -SNAPSHOT.
  2. Run gradle publishToMavenLocal to publish artifacts with your changes to your local Maven repository.
  3. In the project you use spring-boot-crud, update the version of spring-boot-crud dependencies to your new snapshot version. Make sure you have mavenLocal() in your repositories in your build definition for this to work.

Releases

Artifacts of this project are published to Maven Central along with their sources and documentations. They are versioned according to semantic versioning. CI/CD is managed by GitHub Actions. See .github for more details on these workflows.

Contributing

All contributions are welcome, including requests to highlight your project using this library. Please feel free to send a pull request. Thank you.

License

This project is licensed with MIT License. See LICENSE for more details.