spring-boot-init-template  by AntonyCheng

SpringBoot template for Java web projects with Spring AI integration

created 1 year ago
409 stars

Top 72.3% on sourcepulse

GitHubView on GitHub
Project Summary

This project provides a comprehensive Spring Boot initialization template for Java web applications, targeting developers building new projects or seeking to learn Spring Boot. It offers a robust foundation by integrating numerous popular frameworks and features, enabling rapid development and reducing boilerplate code.

How It Works

The template leverages Spring Boot 3.2.5 and Java 17, utilizing Undertow as a high-performance web server. It adopts a modular design, integrating a wide array of technologies including Mybatis-Plus for data access, ShardingSphere for database sharding, Redis and Redisson for caching, RabbitMQ for messaging, Elasticsearch via Easy-ES, SaToken for authentication, various object storage services (Tencent COS, MinIO, Alibaba OSS), Caffeine for local caching, and Spring AI for large language model integration. The project also includes configurations for scheduled tasks (SpringBoot Scheduler, XxlJob, PowerJob), WebSocket, SpringBoot Admin for monitoring, Canal for data synchronization, and Docker Compose for containerized deployment.

Quick Start & Requirements

  • Installation: Clone the repository and configure application-xxx.yaml files with your specific database (MySQL 8.0.X recommended), Redis (7.X.X mandatory), Elasticsearch (7.X.X mandatory, 7.14.0 recommended), and RabbitMQ (3.X.X recommended) connection details.
  • Prerequisites: Java 17 (JDK 11, JDK 8 partially supported), MySQL, Redis, Elasticsearch, RabbitMQ.
  • Setup: Requires database initialization via provided SQL scripts (sql/init_db.sql, sql/init_xxl_job.sql, sql/init_power_job.sql). Default admin credentials are admin/123456.
  • Documentation: README provides extensive configuration details and usage examples.

Highlighted Details

  • Integrates Spring AI for OpenAI, ZhipuAI, and Ollama.
  • Features a comprehensive RabbitMQ solution with dead-letter and delayed queues.
  • Simplifies Elasticsearch interaction using the Easy-ES framework.
  • Includes support for multiple object storage providers (Tencent COS, MinIO, Alibaba OSS).
  • Offers robust security features with SaToken, supporting both Session+Cookie and Redis+JWT modes.

Maintenance & Community

The project is actively maintained by AntonyCheng, with a commitment to continuous updates. Community contributions via Pull Requests and Issues are encouraged.

Licensing & Compatibility

  • License: Apache License 2.0.
  • Compatibility: Suitable for commercial use.

Limitations & Caveats

The README notes that Git branches are pre-release, and stable versions are recommended from Releases. Some configurations, like Elasticsearch dependencies, are fixed to specific versions (7.14.0), which might limit compatibility with newer Elasticsearch instances. The frontend template is a basic integration for project completeness.

Health Check
Last commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
2
Star History
77 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.