A Modern, Modular Java Enterprise Framework — Built for Java 25+
Bus is a comprehensive, modular enterprise Java framework providing production-ready components for building modern applications. It covers everything from core utilities and cryptography to HTTP clients, distributed tracing, payment integration, and cloud storage — all with unified configuration and a consistent API style.
Every module is independently usable and integrates seamlessly into Spring Boot applications via bus-starter.
| Module | Description |
|---|---|
| bus-all | Meta-module that pulls in all Bus modules as a single dependency |
| bus-auth | Enterprise authentication & authorization (OAuth2, JWT, RBAC) |
| bus-base | Shared base types, constants, and exception hierarchy |
| bus-bom | Bill of Materials — import versions without using Bus as a parent |
| bus-cache | Multi-level caching abstraction (Redis, Caffeine, EhCache, …) |
| bus-core | Core utilities: reflection, annotation synthesis, type conversion, I/O, and more |
| bus-cortex | Unified registry & configuration center for distributed services |
| bus-crypto | Cryptographic framework: AES, RSA, SM2/SM3/SM4, digests, encoding |
| bus-extra | Additional utilities and integrations beyond the core |
| bus-gitlab | GitLab API client and CI/CD integration helpers |
| bus-health | Health check endpoints and system health monitoring |
| bus-fabric | Unified HTTP client plus non-blocking socket and WebSocket abstractions |
| bus-image | Professional image processing and DICOM medical imaging support |
| bus-limiter | Hotspot detection, rate limiting, and degradation |
| bus-logger | Universal logging abstraction that bridges all major log frameworks |
| bus-mapper | MyBatis enhancement: type handlers, generic CRUD, and query DSL |
| bus-metrics | Production-grade metrics collection and reporting |
| bus-notify | Multi-channel notification service (email, SMS, DingTalk, WeChat, …) |
| bus-office | Office document processing: Excel, Word, PDF |
| bus-opencv | OpenCV integration for computer vision tasks |
| bus-pay | Universal payment integration (Alipay, WeChat Pay, UnionPay, …) |
| bus-proxy | Dynamic proxy and AOP utilities |
| bus-sensitive | Data masking and sensitive-field protection |
| bus-setting | Unified configuration file reading (properties, YAML, TOML, …) |
| bus-shade | Shaded dependency management and relocation |
| bus-starter | Spring Boot auto-configuration starter for the entire Bus ecosystem |
| bus-storage | Unified cloud storage abstraction (S3, OSS, COS, MinIO, …) |
| bus-tempus | Time and scheduling utilities: cron expressions, calendar operations |
| bus-tracer | Distributed tracing integration (OpenTelemetry, SkyWalking, …) |
| bus-validate | Declarative validation framework with annotation support |
| bus-vortex | High-performance API gateway and traffic management |
Inherit from bus-parent to get managed dependency versions and build configuration in one step:
<parent>
<groupId>org.miaixz</groupId>
<artifactId>bus-parent</artifactId>
<version>8.x.x</version>
</parent>Then declare only the modules you need — no version tags required:
<dependencies>
<!-- Core utilities -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-core</artifactId>
</dependency>
<!-- Spring Boot auto-configuration -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-starter</artifactId>
</dependency>
<!-- Encryption / cryptography -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-crypto</artifactId>
</dependency>
</dependencies><dependencyManagement>
<dependencies>
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-bom</artifactId>
<version>8.x.x</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement><dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-all</artifactId>
<version>8.x.x</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.miaixz</groupId>
<artifactId>bus-parent</artifactId>
<version>8.x.x</version>
</parent>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<dependencies>
<!-- Spring Boot auto-configuration for all Bus modules -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-starter</artifactId>
</dependency>
<!-- Database access (MyBatis enhancement) -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-mapper</artifactId>
</dependency>
<!-- Multi-channel notifications -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-notify</artifactId>
</dependency>
<!-- Cloud storage (S3, OSS, COS, …) -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-storage</artifactId>
</dependency>
</dependencies>
</project>Parent POM (pom.xml):
<project>
<parent>
<groupId>org.miaixz</groupId>
<artifactId>bus-parent</artifactId>
<version>8.x.x</version>
</parent>
<groupId>com.example</groupId>
<artifactId>my-platform</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>platform-common</module>
<module>platform-service</module>
<module>platform-web</module>
</modules>
</project>Child module (platform-common/pom.xml):
<project>
<parent>
<groupId>com.example</groupId>
<artifactId>my-platform</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>platform-common</artifactId>
<dependencies>
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-core</artifactId>
</dependency>
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-crypto</artifactId>
</dependency>
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-validate</artifactId>
</dependency>
</dependencies>
</project>bus-parent provides the following defaults — override any property in your own POM as needed.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>| Component | Version |
|---|---|
| Java baseline | 25+ |
| Spring Boot | 4.1.0 |
| MyBatis | 3.5.19 |
| MyBatis-Spring | 3.0.5 |
| Plugin | Purpose |
|---|---|
maven-compiler-plugin |
Java compilation with parameter metadata and Lombok annotation processing; compiler release is supplied by the active Maven settings/profile |
maven-resources-plugin |
UTF-8 resource filtering with the Bus resource delimiter |
maven-jar-plugin |
Standard JAR manifest entries without embedding META-INF/maven descriptors |
maven-war-plugin |
Standard WAR manifest entries without embedding META-INF/maven descriptors |
maven-surefire-plugin |
Unit test runner with module-path disabled for test compatibility |
maven-failsafe-plugin |
Integration test runner bound to integration-test and verify |
maven-source-plugin |
Source JAR for release |
maven-javadoc-plugin |
Javadoc JAR for release |
spotless-maven-plugin |
Source, XML, Markdown, YAML, JSON, properties, SVG, service, and POM formatting |
groom-maven-plugin |
Published POM normalization for Bus modules and parent POMs |
maven-gpg-plugin |
GPG signing for Maven Central |
central-publishing-maven-plugin |
Maven Central publishing through the Central Portal |
git-commit-id-maven-plugin |
Build-time git.properties generation |
spring-boot-maven-plugin |
Spring Boot executable archive repackaging |
native-maven-plugin |
GraalVM reachability metadata and native image build integration |
<!-- Recommended: version is inherited from bus-parent -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-core</artifactId>
</dependency>
<!-- Avoid: hardcoding the version creates maintenance overhead -->
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-core</artifactId>
<version>8.x.x</version>
</dependency>bus-starter is a convenience dependency. Exclude sub-modules you do not use to keep the classpath lean:
<dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.miaixz</groupId>
<artifactId>bus-mapper</artifactId>
</exclusion>
</exclusions>
</dependency><dependency>
<groupId>org.miaixz</groupId>
<artifactId>bus-core</artifactId>
<version>8.x.x</version> <!-- overrides the parent-managed version -->
</dependency>Q: Can I use Bus with my own Spring Boot parent?
Yes. Instead of inheriting bus-parent, import bus-bom inside <dependencyManagement> — this gives you all version
management without replacing your parent.
Q: How do I see every managed version?
mvn help:effective-pom | grep -A2 'artifactId>bus-'Or for the full resolved POM:
mvn help:effective-pomQ: What is the minimum Java version?
Bus 8.x requires Java 25 or higher. Older Bus 7.x series supports Java 11.
Q: Is GraalVM native image supported?
Yes. Bus modules ship GraalVM metadata under META-INF/native-image, and bus-all consolidates module metadata into
one aggregated native-image configuration during packaging.
| Bus Version | Java | Spring Boot | Status |
|---|---|---|---|
| 8.8.x | 25+ | 3.5.x | Active |
| 8.0.x - 8.6.x | 25+ | 3.x | Maintenance |
| 7.x | 11+ | 2.x | End of Life |
Bus is released under the Apache License 2.0.
Copyright © 2015–2026 miaixz.org and contributors.