{"id":23660710,"url":"https://github.com/yizzuide/milkomeda","last_synced_at":"2025-04-05T03:10:02.004Z","repository":{"id":71602192,"uuid":"178547185","full_name":"yizzuide/Milkomeda","owner":"yizzuide","description":"Spring extend componets which build from experience of bussiness, let developers to develop with Spring Boot as fast as possible.（基于Spring生态打造的一系列来自业务上的快速开发模块集合。）","archived":false,"fork":false,"pushed_at":"2024-12-15T14:40:01.000Z","size":2668,"stargazers_count":124,"open_issues_count":1,"forks_count":35,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T02:06:37.822Z","etag":null,"topics":["cache","ddd-architecture","delay-queue","destributed-lock","eventbus","exception-handler","httpclient","i18n","java","jwt","limiter","mybatis","quartz","redis","spring","spring-boot","spring-security","spring-task","validator","zookeeper"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yizzuide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-30T11:01:19.000Z","updated_at":"2025-03-20T06:12:36.000Z","dependencies_parsed_at":"2024-03-23T07:28:17.090Z","dependency_job_id":"1546e180-ac34-4ef0-8922-bd7f3a65786d","html_url":"https://github.com/yizzuide/Milkomeda","commit_stats":null,"previous_names":[],"tags_count":148,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yizzuide%2FMilkomeda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yizzuide%2FMilkomeda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yizzuide%2FMilkomeda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yizzuide%2FMilkomeda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yizzuide","download_url":"https://codeload.github.com/yizzuide/Milkomeda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache","ddd-architecture","delay-queue","destributed-lock","eventbus","exception-handler","httpclient","i18n","java","jwt","limiter","mybatis","quartz","redis","spring","spring-boot","spring-security","spring-task","validator","zookeeper"],"created_at":"2024-12-29T04:00:04.621Z","updated_at":"2025-04-05T03:10:01.985Z","avatar_url":"https://github.com/yizzuide.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Milkomeda\n![tag](https://img.shields.io/github/tag/yizzuide/Milkomeda.svg) [![Maven Central](https://img.shields.io/maven-central/v/com.github.yizzuide/milkomeda-spring-boot-starter)](https://search.maven.org/search?q=g:com.github.yizzuide%20AND%20a:milkomeda-spring-boot-starter) ![Java CI](https://github.com/yizzuide/Milkomeda/workflows/Java%20CI/badge.svg?branch=master) [![Code Coverage](https://codecov.io/gh/yizzuide/Milkomeda/branch/master/graph/badge.svg)](https://codecov.io/gh/yizzuide/Milkomeda/branch/master) [![Production Ready](https://img.shields.io/badge/production-ready-blue.svg)](https://github.com/yizzuide/Milkomeda) ![license](https://img.shields.io/github/license/yizzuide/Milkomeda.svg)\n\nThe project name is inspired by the fact that the Milky Way and Andromeda galaxies will merge in the future, and like the Spring ecosystem, this project has a number of popular modular solutions. \n\n\u003e 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.\n\n[中文文档](https://github.com/yizzuide/Milkomeda/blob/master/README_zh-CN.md)\n\n## Goals\n- Use meta-configuration whenever possible.\n- Use annotations whenever possible.\n- Use declarative programming whenever possible.\n\n## Modules\n- [x] Pulsar: Used for long polling, fast-timeout. *0.1.0+*\n   * Depends on: Spring MVC\n- [x] Comet: Used for uniform request facet logging (include controller layer and service layer (*1.12.0+*)). *0.2.0+*\n   * Depends on: Spring MVC\n- [x] Pillar: Used for if/else business block splitting. *0.2.0+*\n   * Depends on: Spring IoC\n- [x] Particle: Support idempotent, times and Bloom limiter (*3.9.0*), also allow an extensible limiter chain of responsibility. *1.5.0+*\n   * Depends on: Spring MVC, SpringBoot Data Redis\n- [x] Light: Used for data cache, support super cache (ThreadLocal), L1 cache（RAM), L2 cache (Redis). *1.8.0+*\n   * Depends on: SpringBoot Data Redis\n- [x] Fusion: Used for dynamic modify method return value, invoke methods based on conditions (support fallback when condition is disallow). *1.12.0+*\n   * Depends on: Spring AOP\n- [x] Echo: Integrating the `RestTemplate` with support sign/unsigned with RSA, encryption with AES, uniform response and verification . *1.13.0+*\n   * Depends on: Spring MVC\n- [x] Crust: Used for both session login and jwt Token stateless login, support config token encryption with RSA and AES. *1.14.0+*\n   * Depends on: Spring Security\n- [x] Ice: Used for delay queue, support delay bucket, TTR, task auto schedule. *1.15.0+*\n   * Depends on: Spring IoC, Spring Task, SpringBoot Data Redis\n- [x] Neutron: Used for time task，support create/delete/update job online. *1.18.0+*\n   * Depends on: Spring IoC, Quartz\n- [x] 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+*\n  * Depends on: Spring IoC, SpringBoot Data Redis\n- [x] Halo: Used for listen Mybatis CRUD. *2.5.0+*\n  * Depends on: Mybatis\n- [x] 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+*\n  * Depends on: Spring MVC\n- [x] Atom: Used for distributed lock, support both Redis and Zookeeper solution. *3.3.0+*\n  * Depends on: Redission, Curator-Recipes\n- [x] 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+*\n  * Depends on: Spring IoC\n- [x] Sundial: Used for master-slave data source switching, addition supports sub-table with consistency of the Hash (3.8.0+). *3.4.0+*\n  * Depends on: Spring JDBC, Mybatis\n- [x] 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+*\n  * Depends on: Spring JDBC, Spring EL, OGNL\n- [x] Metal: Used for distributed dynamic configuration refresh based on KV data and support property-binding injection. *3.6.0+*\n  * Depends on: Spring IoC, SpringBoot Data Redis\n- [x] Orbit: Add method interceptor only with yml config or using `@Orbit`. *3.13.0+*\n  * Depends on: Spring AOP\n- [x] Sirius: Mybatis-plus addition support, such as page query with `@QueryMatcher`, remove before check ref with `@RefMatcher`. *3.14.0+*\n  * Depends on: Mybatis-plus\n    \n## Requirements\n* Java 8\n* Lombok 1.18.x\n* SpringBoot 2.x\n\n## Version control guidelines\n| Milkomeda                     | Spring Boot       |\n|-------------------------------|-------------------|\n| 4.0+                          | 3.2.x             |\n| 3.15.x - 3.20.x               | 2.7.x             |\n| 3.14.x                        | 2.6.x             |\n| 3.13.x                        | 2.4.x - 2.5.x     |\n| 3.0 - 3.12.x                  | 2.2.x - 2.3.x     |\n| 1.16.x - 2.x                  | 2.1.x             |\n| Dalston.1.11.0-Dalston.1.12.0 | Spring Boot 1.5.x |\n\n## Installation\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.yizzuide\u003c/groupId\u003e\n    \u003cartifactId\u003emilkomeda-spring-boot-starter\u003c/artifactId\u003e\n    \u003cversion\u003e${milkomeda-last-version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Upgrade\n### 3.0 Release\nMilkomeda 3.0 is now available（April 2020). \n\n- YML config, promoted to first-class of development, allows developers to start quickly.\n- Add a new module called `Hydrogen`, the infrastructure functions of Spring and SpringMVC are all taken over, and explored from the source level.\n- The aggregation ability of functional modules has strengthened to achieve the improvement of the small world within the big world.\n\n### [More](https://github.com/yizzuide/Milkomeda/wiki/Upgrade-Guide)\n\n## Documentation\n[See Wiki](https://github.com/yizzuide/Milkomeda/wiki)\n\n## Releases log\n[See Releases](https://github.com/yizzuide/Milkomeda/releases)\n\n## Contributing\nThis project needs more developers to work together, join us with some notice as the following:\n\n- If you have a better idea, please submit a new issue with `[feature]` prefix.\n- Fork from `master` branch, check out a new branch named like `feat_module_yyyyMMdd` for add new module，`fix_module_yyyyMMdd` for fixing issues.\n- The newly added module should be as universal as possible, also provide demo in `MilkomedaDemo` as better.\n- The newly added module must be under package `com.github.yizzuide.milkomeda` with addition module name subpackage, and can be enabled with annotation in Spring Boot environment.\n- Don't commit IDE config file and OS temp file, please add to `.gitignore` file.\n- The last thing, pull request for me with `master` branch or `dev-xxx` if there is a recent new version development branch.\n\n## Author\nyizzuide fu837014586@163.com\n\n## License\nMilkomeda is available under the MIT license. See the LICENSE file for more info.\n\n## Sponsors\n\u003ca href=\"https://www.jetbrains.com\" target=\"_blank\"\u003e\n  \u003cimg width=\"100\" src=\"./logo/sponsors.png\" alt=\"IntelliJ IDEA\"\u003e\n\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyizzuide%2Fmilkomeda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyizzuide%2Fmilkomeda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyizzuide%2Fmilkomeda/lists"}