tip: After joining the group, you can get a free code generator with the screenshot of Star
JPowerIt is upgraded and optimized from a government commercial project.
Adopting the front-end and back-end separation model, front-end open source projects:jpower-ui (basedOn AVue、Vue、Element-UI)、JPowerWeb(basedOn Vue、Element-UI)
SpringBoot(2.4.2) a rapid development platform for microservices
It has multiple modules such as unified gateway authentication, Xss anti-cross-site attack, and distributed transaction, and supports the parallel development of multi-service systems.
Supports parallel development of multiple services and can be used as a scaffolding for the development of back-end services. The code is concise, the comments are complete, and the structure is clear. It is very suitable for learning and use as a basic framework.
JPower The blueprint of the goal is to be able to create a development framework that integrates a variety of useful tools, such as configuring various reports on the page, integrating echarts to achieve rapid page generation, data transmission in various scenarios, and so on. tool.
At present, only the basic architecture has been developed, and various tools will be gradually developed into the framework in the future.
Core technology adopts spring cloud alibaba、SpringBoot、Mybatis、Seata、Sentinel、SkyWalking main frameworks and middleware。
I hope to work hard to create a set of solutions that integrates
basic framework —>
distributed microservice architecture —>
tool integration —>
This project aims to achieve basic capabilities and does not involve specific businesses.
Using JWT for Token authentication can expand and integrate Redis and other fine-grained control schemes.
The registration center and configuration center select Nacos to strengthen the linkage between the modules while reducing the weight of the project.
The integration of Sentinel protects the stability of services from multiple dimensions such as flow control and fuse degradation.
The code generator is implemented based on MybatisPlus-generator.
ps: No write permission in the demo environment
Service registration & discovery and invocation：
Service registration and discovery based on Nacos, using OpenFeign to realize service intermodulation, It is possible to achieve the same coding experience as calling a local method when using HTTP requests for remote calls. Developers are completely unaware that this is a remote method, let alone an HTTP request.
JWT is used to strengthen the authorization verification of scheduling between services to ensure the security of internal services.
Because of the distribution of services, in order to avoid the "avalanche" of calls between services, Sentinel is used as a fuse to avoid the "avalanche" between services.
Use Spring Boot Admin To monitor the running status of each independent Service; use SkyWalking to view the call chain between each service, etc.
Link call monitoring:
At the same time, it realized SkyWalking as the full link performance monitoring of this project, Various indicators are displayed from the overall dimension to the partial dimension, and the performance information of all call chains across applications is displayed in a centralized manner, which can facilitate the measurement of overall and partial performance, and facilitate the identification of the source of the failure, which can greatly shorten the troubleshooting time in production.
The data permission function is realized by using the interceptor based on Mybatis
Anti-cross-site scripting attack(XSS)
Because some functions of native swagger-ui are not friendly enough, the domestic open source is adopted
knife4j, And made a statuser, which is convenient for springboot users to use.
Integrate Ali's distributed transaction middleware: seata, with Efficient And for business 0 intrusion The way，Solve the distributed transaction problems faced in the microservice scenario。
Automatic query of dictionary data across tables, databases, and services
Used to solve the properties of cross-table, cross-database, cross-service paging data or the properties of a single object Echo the pain of dictionary data, Support for static data attributes(Data Dictionary)Automatic injection。
In order to solve frequent service updates and launches, version rollbacks, rapid iteration, and collaborative development within the company, this project uses a modified spring-load-balancing load balancing strategy to achieve gray release.
In order to ensure that the interface is unblocked at any time, the monitoring of the interface is specially developed for this, and the interface monitoring of any other services can also be realized, and some custom parameter settings can be realized.
JPower ├── config -- Configuration file directory ├── jpower-core-login -- Authorized login module ├── jpower-core-server -- Core business module ├ ├── jpower-file -- File module ├ ├── jpower-user -- User module ├ ├── jpower-system -- System module ├── jpower-feign-api -- feign api ├ ├── jpower-file-api -- File Api ├ ├── jpower-system-api -- System Api ├ ├── jpower-user-api -- User Api ├── jpower-module-common -- Toolkit module ├ ├── common-auth -- Authorization Toolkit ├ ├── common-dbs -- Database toolkit ├ ├── common-deploy -- Basic Startup Kit ├ ├── common-exception -- Anomaly Toolkit ├ ├── common-log -- Log Toolkit ├ ├── common-nacos -- Nacos Toolkit ├ ├── common-redis -- Cache Toolkit ├ ├── common-feign -- The feign toolkit also integrates sentinel ├ ├── common-swagger -- Swagger Toolkit ├ ├── common-tool -- Basic Configuration Toolkit ├ ├── common-transaction -- Distributed Transaction Toolkit ├ └── common-utils -- Tools ├── jpower-module-gateway -- Gateway module ├── jpower-op-server -- Operation and maintenance module ├ ├── jpower-doc -- Swagger Page ├ ├── jpower-log -- Log Service └── └── jpower-admin -- SpringBootAdmin
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容，可点击提交进行申诉，我们将尽快为您处理。
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.