Milkomeda
The inspiration for this project name is the Milky Way and the Andromeda will merge in the future, like spring ecosystem, this project has many popular modular solution.
This project is not demo or template, can be called "springboot plus" (sounds like a great project), each module needs to be enabled with the appropriate annotations.
Goals
- Use meta configuration whenever possible.
- Use annotations whenever possible.
- Use declarative programming whenever possible.
Modules
- Pulsar: Used for long polling, fast-timeout. 0.1.0+
- Depends on: Spring MVC
- Comet: Used for uniform request facet logging (include controller layer and service layer (1.12.0+)). 0.2.0+
- Depends on: Spring MVC
- Pillar: Used for if/else business block splitting. 0.2.0+
- Depends on: Spring IoC
- Particle: Support idempotent, times and Bloom limiter (3.9.0), also allow extensible limiter chain of responsibility. 1.5.0+
- Depends on: Spring MVC, SpringBoot Data Redis
- Light: Used for data cache, support super cache (ThreadLocal), L1 cache(RAM), L2 cache (Redis). 1.8.0+
- Depends on: SpringBoot Data Redis
- Fusion: Used for dynamic modify method return value, invoke methods based on conditions (support fallback when condition is disallow). 1.12.0+
- Depends on: Spring AOP
- Echo: Integrating the
RestTemplate
with support sign/unsigned with RSA, encryption with AES, uniform response and verification . 1.13.0+- Depends on: Spring MVC
- Crust: Used for both session login and jwt Token stateless login, support config token encryption with RSA and AES. 1.14.0+
- Depends on: Spring Security
- Ice: Used for delay queue, support delay bucket, TTR, task auto schedule. 1.15.0+
- Depends on: Spring IoC, Spring Task, SpringBoot Data Redis
- Neutron: Used for time task,support create/delete/update job online. 1.18.0+
- Depends on: Spring IoC, Quartz
- Moon: Used for polling between multiple type values, support for concurrent operations, support for generic data values, and isolation of different services. 2.2.0+
- Depends on: Spring IoC, SpringBoot Data Redis
- Halo: Used for listen Mybatis CRUD. 2.5.0+
- Depends on: Mybatis
- Hydrogen: Used for aop transactions, unified exception response handling (also support for custom exceptions), parameter validation, internationalization, add interceptors and filters dynamically (support for loaded online). 3.0.0+
- Depends on: Spring MVC
- Atom: Used for distributed lock, support both Redis and Zookeeper solution. 3.3.0+
- Depends on: Redission, Curator-Recipes
- Wormhole: The event bus designed based on DDD architecture module can be used for event flow, big data business event production and output. 3.3.0+
- Depends on: Spring IoC
- Sundial: Used for master-slave data source switching, addition support sub-table with consistency of the Hash (3.8.0+). 3.4.0+
- Depends on: Spring JDBC, Mybatis
- Jupiter: Lightweight rule engine based on data source queries, query filtering with request domains extract expression (such as
$params
,$attr
,$header
),and result matching with EL/OGNL expression parsing. 3.5.0+- Depends on: Spring JDBC, Spring EL, OGNL
- Metal: Used for distributed dynamic configuration refresh based on KV data and support property binding injection. 3.6.0+
- Depends on: Spring IoC, SpringBoot Data Redis
- Orbit: Add method interceptor only with yml config or using
@Orbit
. 3.13.0+- Depends on: Spring AOP
- Sirius: Mybatis-plus addition support, such as page query with
@QueryMatcher
, remove before check ref with@RefMatcher
. 3.14.0+- Depends on: Mybatis-plus
Requirements
- Java 8
- Lombok 1.18.x
- SpringBoot 2.x
Version control guidelines
Milkomeda | Spring Boot |
---|---|
3.14.x | 2.6.x |
3.13.x | 2.4.x - 2.5.x |
3.0 - 3.12.x | 2.2.x - 2.3.x |
1.16.x - 2.x | 2.1.x |
Dalston.1.11.0-Dalston.1.12.0 | Spring Boot 1.5.x |
Installation
<dependency>
<groupId>com.github.yizzuide</groupId>
<artifactId>milkomeda-spring-boot-starter</artifactId>
<version>${milkomeda-last-version}</version>
</dependency>
Upgrade
3.0 Release
Milkomeda 3.0 is now available(April 2020).
- YML config promoted to first-class of development, allow developers to start quickly.
- Add a new module called
Hydrogen
, the infrastructure functions of Spring and SpringMVC are all taken over, and explored from the source level. - The aggregation ability of functional modules has strengthened to achieve the improvement of the small world within the big world.
More
Documentation
Releases log
Contributing
The Mikomeda project needs more developers to work together, join us with some notice as following:
- If you have a better idea, please submit a new issue with
[feature]
prefix. - Fork from
master
branch, checkout a new branch named likefeat_module_yyyyMMdd
for add new module,fix_module_yyyyMMdd
for fixing issues. - The newly added module should be as universal as possible, also provide demo in
MilkomedaDemo
as better. - The newly added module must be under package
com.github.yizzuide.milkomeda
with addition module name sub package, and can be enabled with annotation in Spring Boot environment. - Don't commit IDE config file and OS temp file, please add to
.gitignore
file. - The last thing, pull request for me with
master
branch ordev-xxx
if there is a recent new version development branch.
Author
yizzuide [email protected]
License
Milkomeda is available under the MIT license. See the LICENSE file for more info.