Reusable Spring Boot 3 building blocks: CRUD base controller, JPA GenericSpecification, pagination DTOs, Caffeine-backed cache helpers, and a common API envelope.
Repository: github.com/thanthtooaung-coding/spring-boot-guru
- Create a Git tag (e.g.
v0.1.0) on this repo after pushing your code. - In the consuming project, add JitPack and the dependency:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.thanthtooaung-coding</groupId>
<artifactId>spring-boot-guru</artifactId>
<version>v0.1.0</version>
</dependency>Replace v0.1.0 with your tag or a commit hash.
CI deploys tagged releases (v*) to GitHub Packages.
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/thanthtooaung-coding/spring-boot-guru</url>
</repository>
</repositories>
<dependency>
<groupId>com.alvin.springbootguru</groupId>
<artifactId>spring-boot-guru</artifactId>
<version>0.1.0</version>
</dependency>Use the same version as the Git tag without the v prefix (e.g. tag v0.1.0 → version 0.1.0). Authenticate with a GitHub PAT (read:packages) in ~/.m2/settings.xml under server id github.
The workflow pushes an image to ghcr.io/thanthtooaung-coding/spring-boot-guru/spring-boot-guru containing the library JAR at /opt/spring-boot-guru/spring-boot-guru.jar.
- Add the dependency (above).
- Configure datasource / JPA / cache in your own
application.propertiesor environment variables (this library does not ship credentials). - Put your
@SpringBootApplicationin your package; use@EntityScan/@EnableJpaRepositoriesfor your entities. - Extend
BaseCrudController,BaseServiceImpl/CachingBaseServiceImpl,BaseRepository,MasterEntity, etc., fromcom.alvin.springbootguru.common.*.
Auto-configuration loads com.alvin.springbootguru.autoconfigure.SpringBootGuruAutoConfiguration via META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports.