spring-cloud-study: twenty Spring Boot 2 modules to learn microservices from
SpringBootLearning,SpringCloudStudy,学习SpringBoot2/SpringCloud2的项目,包含Eureka/Zuul/JPA/Mybatis Plus/Feign/WebSocket/JMS/POI-TL/Redis Cache/UDP/SecurityJWT/elasticSearch/Drools
At a glance
- What is it?
- spring-cloud-study is a Chinese language learning repository that collects about two dozen independent Spring Boot and Spring Cloud modules, each with its own port, covering Eureka, Zuul, Feign, a config center, JPA, Redis, JMS, Netty, security and a business rules engine. It is a study collection rather than a library, and it is pinned to Spring Boot 2 and Java 8 or 11.
- Who is it for?
- Adopt this repository if you are learning Spring Boot 2 and Spring Cloud by example, if you read Chinese comfortably, and if you want each concept, a registry, a gateway, a config center, remote calls and caching, running separately on a fixed port. Do not adopt it as a production foundation, because it is pinned to the Spring Boot 2 generation, the Zuul module is marked deprecated in favour of an API gateway, and the parent pom has all modules disabled by default.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 149 days ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A study collection, not a framework
spring-cloud-study is a Spring Boot and Spring Cloud learning project. The repository description calls it SpringBootLearning and SpringCloudStudy, a project for studying Spring Boot 2 and Spring Cloud 2, covering Eureka, Zuul, JPA, MyBatis Plus, Feign, WebSocket, JMS, POI and TL, Redis cache, UDP, security with JWT, Elasticsearch and Drools. The instruction in the README is to enable the dependencies as needed, and the author asks for follow, support and feedback.
The structure is what distinguishes it from a curated example set. Each topic is a separate Maven module with its own directory, its own dependencies and its own port, and most of them can be started on their own without the others running. The repository root carries the parent pom.xml, a Jenkinsfile and a Travis configuration, which is the shape of a personal project built up over years rather than a maintained framework.
The environment is pinned and stated plainly: Spring Cloud and Spring Boot 2.X, JDK 8 or 11, UTF-8 encoding, and an IDE of Spring Tool Suite, IntelliJ IDEA, which is the recommended one, or VS Code with STS. The parent pom sets the encoding and the Java level:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>Two generations of the platform are now old, and that fact shapes everything below.
The module catalogue and the port each one takes
The README's table is the most useful part of the repository because it tells you at a glance what each module does and which port it occupies.
The infrastructure modules come first. spring-cloud-study-eureka is the service discovery and registration centre on port 8888. spring-cloud-study-zuul is the dynamic forwarding router on 7777. spring-cloud-study-configcenter is the configuration centre on 5555, and spring-cloud-study-feign, the microservice remote call module, sits on 6666.
The data and integration modules follow. spring-cloud-study-jpa on 4444 uses JPA with a Hibernate implementation. spring-cloud-study-redis on 2222 covers hot data caching with Redis and Spring Cache. spring-cloud-study-jms on 1111 is JMS with an ActiveMQ implementation. spring-cloud-study-mybatisplus on 3333 uses MyBatis Plus, and spring-cloud-study-poi on 8899 shows POI import.
The programming model and transport modules come next. spring-cloud-study-aop on 9998 is AOP aspect programming, spring-cloud-study-udp on 9898 is UDP implemented with Netty, and spring-cloud-study-netty-websocket on 6688 is WebSocket implemented with Netty.
The remaining cluster covers security, search, rules and operations. spring-cloud-study-security on 9999 is a Spring Security demo with custom authorisation, and spring-cloud-study-security-jwt on 9999 is the JWT variant. spring-cloud-study-elasticsearch on 9999 uses spring-data-elasticsearch. spring-cloud-study-drools on 9999 is the Drools business rules engine. spring-cloud-study-logstash on 9999 combines Spring Boot 2, logback, logstash, Elasticsearch and Kibana into a log collection and analysis system. spring-cloud-study-websocket on 9999 is a Spring Boot 2 and WebSocket version refined for IM use, and spring-cloud-study-ehcache on 9999 is a pure Java process cache framework.
The repository tree also contains modules the table does not list, including spring-cloud-study-empty, spring-cloud-study-shiro and spring-cloud-study-websocket-cluster, which is a good indication that the catalogue grew faster than the documentation.
Every module reference is disabled on purpose
The startup and configuration notes contain the instruction that explains the whole repository layout, and it is worth quoting in substance.
Because there are too many subprojects, all module references were temporarily removed, and the instruction is to enable the corresponding module in the parent pom.xml yourself. Each module is then enabled as needed: the demo, the config center, the JPA module, the Feign module and so on.
Two things follow from that arrangement. Most modules are Spring Boot applications that can be started independently without depending on Eureka or the other Spring Cloud components, so a reader can open one directory and run one application. And if you are learning microservices, the README tells you to start spring-cloud-study-eureka first, because it is the registry that most microservices need in order to work at all.
The gateway module carries a note of its own. Zuul is marked as deprecated and the README says an API gateway should be used instead, with the note that the module will later be upgraded to one. The routing discussion in the same section says that Zuul is blocking while the API gateway is NIO based.
So the repository is a snapshot of a generation of Spring Cloud, in the middle of its own transition from the Netflix stack, and it says so.
Eureka, Zuul and the order in which you start things
The Eureka section describes it as the microservice registry, part of the Spring Cloud family, the Netflix version of the registry, and the thing to start first because everything else depends on it. The configuration is single instance and single node by default, though the README notes it can be modified for a cluster. Its console is at http://127.0.0.1:8888/eureka.
The Zuul section explains two ways of dispatching requests through the gateway. The first pairs a path prefix such as /api1 with a route configured in the yml file, and the README recommends the variant where you name the serviceId explicitly. The second dispatches directly by serviceId with no extra configuration, and the serviceId that gets forwarded comes from the project's spring:application:name, which for the demo module is spring-cloud-study-demo.
The URLs in the README show the layering working. A request to http://127.0.0.1:7777/spring-cloud-study-demo/demo/index is dispatched automatically, while requests to /api2/demo/index and /api1/demo/socket/222 are routed to whatever the configuration file maps those prefixes to. The Feign section adds a third layer, with a URL that goes through Zuul to Feign and on to the demo service.
That last URL is the clearest illustration of the whole exercise, and it is why the README insists on starting Eureka first.
The demo, config center and JPA endpoints
The demo module is the simplest thing to run, and the README is explicit that it is just a normal request handler returning JSON, plus WebSocket support with a link to a separate article for readers who do not know WebSocket. The endpoints are a WebSocket page at /demo/socket/222, a JSON response at /demo/index, a socket address at /demosocket/222, and /basepath, which returns the microservice path, which is a neat way to show what the gateway has rewritten.
The config center module is described as reading shared configuration files, and it exposes /getparam for a variable and /application/dev for the variables of application-dev.yml.
The JPA module is where the README spends a paragraph on how a study project should not require database administration. JPA is a standard and Hibernate is the implementation, and the module has left Eureka, so if you want it back you remove the Eureka pieces from the pom and the starter comments. As long as the database connection is correct, starting the project creates the tables automatically, and an init method populates the data, so you never have to touch the database by hand. The endpoints initialise the user 8899 and fetch the roles of that user.
The Redis section follows the same teaching pattern, with put, get, list and update routes and a note that an EL expression can be used to specify the key.
Where this repository is the wrong tool
Three cases point elsewhere.
The first is a new Spring Boot 3 project. The whole repository is pinned to Spring Boot 2.X and Java 8 or 11, and the parent pom sets java.version to 1.8. The Spring Cloud generation it teaches, the Netflix stack with Eureka and Zuul, has been superseded, and the README's own deprecation notice on Zuul says as much. Learning from it is fine; building on it is a dated choice.
The second is a team that does not read Chinese. The documentation, the module descriptions, the table and the startup notes are all written in Chinese, and the project is presented alongside the author's blog. A reader who cannot read the comments will be reconstructing the intent from code alone.
The third is anything expecting a maintained library. This is a personal study repository with no GitHub releases, no recorded licence, a Travis badge and a Jenkinsfile, and a parent pom with every module switched off. The modules are examples rather than a supported API, and the ports collide across modules, several of them on 9999, which means running more than a couple at once is a matter of editing configuration.
The one structural point worth keeping is the design of the modules themselves. Each one is self contained and independently startable, which is the right way to teach a service discovery and gateway pair, and the only module that genuinely requires the others is the one that talks to Eureka.
Editorial conclusion
Adopt this repository if you are learning Spring Boot 2 and Spring Cloud by example, if you read Chinese comfortably, and if you want each concept, a registry, a gateway, a config center, remote calls and caching, running separately on a fixed port. Do not adopt it as a production foundation, because it is pinned to the Spring Boot 2 generation, the Zuul module is marked deprecated in favour of an API gateway, and the parent pom has all modules disabled by default. Verify three things first: that your JDK is 8 or 11, since that is the stated environment and the pom sets java.version to 1.8; which modules you will enable in the parent pom, because the references were deliberately removed; and that Eureka is started first, since most of the microservice modules depend on the registry. No licence is recorded for the repository, the last push was on 2026-05-27, and there are no GitHub releases to pin.
Frequently asked questions
What is the spring-cloud-study repository?
It is a Spring Boot and Spring Cloud learning project described as SpringBootLearning and SpringCloudStudy, a collection of independent modules for studying Spring Boot 2 and Spring Cloud 2, covering Eureka, Zuul, JPA, MyBatis Plus, Feign, WebSocket, JMS, Redis, security with JWT, Elasticsearch and Drools.
How do you build and run the modules in spring-cloud-study?
The parent pom has all module references removed, so you enable the modules you need in it yourself. Most modules are standalone Spring Boot applications that start without Eureka, but if you are learning microservices the README tells you to start spring-cloud-study-eureka first, on port 8888, because most of the others depend on the registry.
Which Java and Spring versions does spring-cloud-study target?
The stated environment is Spring Cloud and Spring Boot 2.X on JDK 8 or 11 with UTF-8 encoding, and the parent pom sets java.version to 1.8 and the source encoding to UTF-8.
Is Zuul still the right gateway for spring-cloud-study?
The README marks the Zuul module as deprecated and notes that it should be upgraded to an API gateway, pointing out that Zuul is blocking while the API gateway is NIO based. The Eureka registry, by contrast, is described as the base that everything else depends on.
Do the spring-cloud-study modules need a database?
The JPA module creates its tables automatically as long as the database connection works, and an init method can populate the data, so you do not have to administer the database by hand. That module has been detached from Eureka, and the README explains how to reattach it if you want the registry involved.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/moshowgame-spring-cloud-study)Was this useful?