{"id":13524949,"url":"https://github.com/hs-web/hsweb-framework","last_synced_at":"2025-05-05T22:55:53.063Z","repository":{"id":39868514,"uuid":"49850704","full_name":"hs-web/hsweb-framework","owner":"hs-web","description":"hsweb (haʊs wɛb) 是一个基于spring-boot 2.x开发 ,首个使用全响应式编程的企业级后台管理系统基础项目。","archived":false,"fork":false,"pushed_at":"2025-04-28T10:38:55.000Z","size":33890,"stargazers_count":8361,"open_issues_count":5,"forks_count":3046,"subscribers_count":705,"default_branch":"master","last_synced_at":"2025-05-05T22:55:46.657Z","etag":null,"topics":["hsweb","java","java8","javaweb","mybatis","r2dbc","reactive-streams","reactor","spring-boot","spring-webflux"],"latest_commit_sha":null,"homepage":"http://hsweb.me","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hs-web.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2016-01-18T03:51:39.000Z","updated_at":"2025-05-05T16:27:03.000Z","dependencies_parsed_at":"2024-04-19T04:23:05.918Z","dependency_job_id":"f7d35df9-1861-4486-b309-76ad40d68e73","html_url":"https://github.com/hs-web/hsweb-framework","commit_stats":{"total_commits":2800,"total_committers":30,"mean_commits":93.33333333333333,"dds":0.3225,"last_synced_commit":"7085b71234be54cf4303f70b10e32b371eeb7d09"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hs-web%2Fhsweb-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hs-web%2Fhsweb-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hs-web%2Fhsweb-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hs-web%2Fhsweb-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hs-web","download_url":"https://codeload.github.com/hs-web/hsweb-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252590551,"owners_count":21772936,"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":["hsweb","java","java8","javaweb","mybatis","r2dbc","reactive-streams","reactor","spring-boot","spring-webflux"],"created_at":"2024-08-01T06:01:14.852Z","updated_at":"2025-05-05T22:55:53.041Z","avatar_url":"https://github.com/hs-web.png","language":"Java","readme":"# hsweb4 基于spring-boot2,全响应式的后台管理框架\n\n[![Codecov](https://codecov.io/gh/hs-web/hsweb-framework/branch/4.0.x/graph/badge.svg)](https://codecov.io/gh/hs-web/hsweb-framework/branch/master)\n[![Build Status](https://api.travis-ci.com/hs-web/hsweb-framework.svg?branch=4.0.x)](https://travis-ci.com/hs-web/hsweb-framework)\n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0.html)\n\n# 功能,特性\n\n- [x] 基于[r2dbc](https://github.com/r2dbc) ,[easy-orm](https://github.com/hs-web/hsweb-easy-orm/tree/4.0.x) 的通用响应式CRUD\n    - [x] H2,Mysql,SqlServer,PostgreSQL\n- [x] 响应式r2dbc事务控制\n- [x] 响应式权限控制,以及权限信息获取\n    - [x] RBAC权限控制\n    - [x] 数据权限控制\n    - [ ] 双因子验证\n- [x] 多维度权限管理功能\n- [x] 响应式缓存\n- [ ] 非响应式支持(mvc,jdbc)\n- [ ] 内置业务功能\n    - [x] 权限管理\n        - [x] 用户管理\n        - [x] 权限设置\n        - [x] 权限分配\n    - [ ] 文件上传\n        - [x] 静态文件上传\n        - [ ] 文件秒传\n    - [x] 数据字典\n\n# 示例\n\nhttps://github.com/zhou-hao/hsweb4-examples\n\n## 应用场景\n\n1. 完全开源的后台管理系统.\n2. 模块化的后台管理系统.\n3. 功能可拓展的后台管理系统.\n4. 集成各种常用功能的后台管理系统.\n5. 前后分离的后台管理系统.\n\n注意:\n项目主要基于`spring-boot`,`spring-webflux`. 在使用`hsweb`之前,你应该对 [project-reactor](https://projectreactor.io/) ,\n[spring-boot](https://github.com/spring-projects/spring-boot) 有一定的了解.\n\n项目模块太多?不要被吓到.我们不推荐将本项目直接`clone`后修改,运行.而是使用maven依赖的方式使用`hsweb`. 选择自己需要的模块进行依赖,正式版发布后,所有模块都将发布到maven中央仓库.\n\n## 文档\n\n各个模块的使用方式查看对应模块下的 `README.md`,在使用之前, 你可以先粗略浏览一下各个模块,对每个模块的作用有大致的了解.\n\n## 核心技术选型\n\n1. Java 8\n2. Maven3\n3. Spring Boot 2.x\n4. Project Reactor 响应式编程框架\n5. hsweb easy orm 对r2dbc的orm封装\n\n## 模块简介\n\n| 模块       |     说明     |  \n| ------------- |:----------:| \n|[hsweb-authorization](hsweb-authorization)|    权限控制    |\n|[hsweb-commons](hsweb-commons) |   基础通用功能   | \n|[hsweb-concurrent](hsweb-concurrent)|  并发包,缓存,等  | \n|[hsweb-core](hsweb-core)| 框架核心,基础工具类 | \n|[hsweb-datasource](hsweb-datasource)|    数据源     | \n|[hsweb-logging](hsweb-logging)|     日志     |  \n|[hsweb-starter](hsweb-starter)|   模块启动器    | \n|[hsweb-system](hsweb-system)| **系统常用功能** |\n\n## 核心特性\n\n1. 响应式,首个基于spring-webflux,r2dbc,从头到位的响应式.\n2. DSL风格,可拓展的通用curd,支持前端直接传参数,无需担心任何sql注入.\n\n```java\n  //where name = #{name}\n  createQuery()\n          .where(\"name\",name)\n          .fetch();\n\n          //update s_user set name = #{user.name} where id = #{user.id}\n          createUpdate()\n          .set(user::getName)\n          .where(user::getId)\n          .execute();\n\n```\n\n3. 类JPA增删改\n\n```java\n\n@Table(name = \"s_entity\")\npublic class MyEntity {\n    \n    @Id\n    private String id;\n    \n    @Column\n    private String name;\n\n    @Column\n    private Long createTime;\n}\n\n```\n\n直接注入即可实现增删改查\n\n```java\n\n@Autowire\nprivate ReactiveRepository\u003cMyEntity, String\u003e repository;\n\n```\n\n2. 灵活的权限控制\n\n```java\n\n@PostMapping(\"/account\")\n@SaveAction\npublic Mono\u003cString\u003e addAccount(@RequestBody Mono\u003cAccount\u003e account){\n     return accountService.doSave(account);\n}\n\n```\n\n## License\n\n[Apache 2.0](https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt)\n\n\n[![Stargazers over time](https://starchart.cc/hs-web/hsweb-framework.svg?variant=adaptive)](https://starchart.cc/hs-web/hsweb-framework)\n","funding_links":[],"categories":["开源","Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhs-web%2Fhsweb-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhs-web%2Fhsweb-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhs-web%2Fhsweb-framework/lists"}