12 个适合做外包项目的开源后台管理系统

来自:今日头条,作者:择偶时分

链接:https://www.toutiao.com/i6865688485706072580

1.D2admin

开源地址:https://github.com/d2-projects/d2-admin

文档地址:https://d2.pub/zh/doc/d2-admin/

效果预览:https://d2.pub/d2-admin/preview/#/index

开源协议:MIT

12 个适合做外包项目的开源后台管理系统

2.vue-element-admin

开源地址:https://github.com/PanJiaChen/vue-element-admin

文档地址:https://panjiachen.github.io/vue-element-admin-site/zh/

效果预览:https://d2.pub/d2-admin/preview/#/index

开源协议:MIT

12 个适合做外包项目的开源后台管理系统

3.JEECG-BOOT

开源地址:https://github.com/zhangdaiscott/jeecg-boot

文档地址:https://panjiachen.github.io/vue-element-admin-site/zh/

效果预览:http://boot.jeecg.com/

开源协议:Apache-2.0 License

12 个适合做外包项目的开源后台管理系统

4.GIN-VUE-ADMIN

开源地址:https://github.com/flipped-aurora/gin-vue-admin

文档地址:https://www.gin-vue-admin.com/

效果预览:http://demo.gin-vue-admin.com/#/layout/dashboard

开源协议:Apache-2.0 License

12 个适合做外包项目的开源后台管理系统

5.vue-admin-beautiful

开源地址:https://github.com/chuzhixin/vue-admin-beautiful

文档地址:https://www.gin-vue-admin.com/

效果预览:http://beautiful.panm.cn/

开源协议:MPL-2.0 License

12 个适合做外包项目的开源后台管理系统

6.Dcat-admin

开源地址:https://github.com/jqhph/dcat-admin

文档地址:http://www.dcatadmin.com/

效果预览:http://103.39.211.179:8080/admin

开源协议:MIT License

12 个适合做外包项目的开源后台管理系统

7.RuoYi

开源地址:https://gitee.com/y_project/RuoYi

文档地址:https://doc.ruoyi.vip/

效果预览:https://vue.ruoyi.vip/index

开源协议:MIT License

12 个适合做外包项目的开源后台管理系统

8.renren-fast-vue

开源地址:https://gitee.com/renrenio/renren-fast-vue

文档地址:https://www.renren.io/guide

效果预览:http://demo.open.renren.io/renren-fast/#/home

开源协议:MIT License

12 个适合做外包项目的开源后台管理系统

9.ant-design-pro

开源地址:https://github.com/ant-design/ant-design-pro

文档地址:https://pro.ant.design/index-cn/

效果预览:https://pro.ant.design/

开源协议:MIT License

10.iview-admin

开源地址:https://github.com/iview/iview-admin

文档地址:https://lison16.github.io/iview-admin-doc/

效果预览:https://admin.iviewui.com/home

开源协议:MIT License

12 个适合做外包项目的开源后台管理系统

11.material-dashboard

开源地址:https://github.com/creativetimofficial/material-dashboard#demo

文档地址:https://demos.creative-tim.com/material-dashboard/docs/2.1/getting-started/introduction.html

效果预览:https://demos.creative-tim.com/material-dashboard/examples/dashboard.html

开源协议:MIT License

12 个适合做外包项目的开源后台管理系统

12.EAdmin

开源地址:https://github.com/suruibuas/eadmin

文档地址:http://doc.eadmin.com.cn/

效果预览:http://www.eadmin.com.cn/

开源协议:无

12 个适合做外包项目的开源后台管理系统

暂时整理这么几个后面遇到更好的再整理,如果大家有好的也欢迎评论区下面推荐。

 
— EOF —

那些 十(nao)分(dong)有(da)趣(kai)的开源项目

文 | 叶子

出品 | OSC开源社区(ID:oschina2013)

我们印象中,GitHub 是世界上最大的代码托管平台,其中有很多优质的开源项目,能为我们工作带来很大帮助。但其实,其中也托管了很多十(nao)(dong)(da)(kai)的开源项目,并登上热搜榜,今天小编就给大家搜罗了几个,看看你知道几个吧!

1、「Loaf」一键摸鱼神器 
Star 数量 :532  
项目地址:https://github.com/DinoChan/Loaf
诶~我在工作,诶~我在摸鱼那些 十(nao)分(dong)有(da)趣(kai)的开源项目工作与摸鱼之间的切换就是如此丝滑!
当你在偷偷摸鱼而老板却突然过来时,只需点下“摸鱼”按钮,就会弹出假的系统更新页面,然后你只需“坦然”面对老板就好了。
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
2、「nocode」一行代码都没有
Star 数量 :51.9 K
项目地址:https://github.com/kelseyhightower/nocode
编写安全可靠的应用程序的最佳方式是什么?
答:什么都不写!
没错,这是该项目作者自述文件中所写,而且项目作者也确实做到了,构建应用程序、部署都一行代码都没有写,可以想象它做任何你想做的事情,可能性无止境!
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
3、「seq2seq-couplet」深度学习对联
Star 数量 :5.2 K
项目地址:https://github.com/wb14123/seq2seq-couplet
这是一个使用 seq2seq 模型对对联的项目,给出上联即可帮你对出下联
以下是此模型生成的一些示例:
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
在线体验地址:https://ai.binwang.me/couplet/
那些 十(nao)分(dong)有(da)趣(kai)的开源项目

4、「reverse-interview-zh」反向面试

Star 数量 :13.5 K
项目地址:https://github.com/yifeikong/reverse-interview-zh
即将要参加面试的同学看过来了,平常我们去面试的时候,最后总有一个环节是“有什么想要问的/了解的吗”,很多面试者往往这时候不知道应该问什么。
呐,这个「反向面试」的项目帮大家罗列出了技术面试最后反问面试官的话,而且非常详细,从职责、技术、团队、问未来同事、公司、社会问题、冲突、商业、远程工作、办公室布局、终极问题、待遇、休假 13 个方向列出了可以问的问题,实在是太实用了!
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
5、「HowToCook」—— 程序员做饭指南
Star 数量 :26.4 K
项目地址:https://github.com/Anduin2017/HowToCook
这个项目是在家隔离的程序员Auduin Xue发起,其认为网上的菜谱写法千奇百怪,对习惯了形式语言的程序员来说极其不友好,故而创建了该项目。
这份「程序员做饭指南」可不简单,其菜单中提供公式,让你根据人数精确把握原料用量,不会被“少量、适量”这类模糊的词语弄得抓耳挠腮。更有意思的是,该项目还能通过公式解决世界难题——今天吃什么!
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
6、「Dress」女装
Star 数量 :21 K
项目地址:https://github.com/komeiji-satori/Dress
这应该是一个深受男同志们喜爱的项目,不多说,自己看吧~
那些 十(nao)分(dong)有(da)趣(kai)的开源项目
以上有趣的开源项目你用过几个呢?你还知道哪些有意思的开源项目呢?评论区来说说吧!
— EOF —

转自:https://mp.weixin.qq.com/s/rdjafnxR7ZVyYuuBe61CiA

构建一套可靠的分布式大型软件系统

https://icyfenix.cn/

我不服!这开源项目居然才888个星!?

先看一下我看了之后整理的思维导图吧:

我不服!这开源项目居然才888个星!?

看不清没关系,文末会给你领取链接的。

看完之后我个人的一个感受是:关于分布式架构方向,写的很多很全很系统。而且都是笔者一路走过来的经验之谈,浓缩在了文章里面。

对得起首页的这一句口号:构建可靠的大型分布式系统。

谁写的?

那么这个开源书的作者是谁呢?

周志明。

是的,就是你想到的那个凭借一己之力拉高了 Java 开发者内功水平,把 JVM 带到了初级面试题环节的男人。

我不服!这开源项目居然才888个星!?

其实你仔细看周佬写的自我介绍,很有小细节。

程序员、研究员、作者、布道师这四个职业,排在第一的是最没有噱头的“程序员”一职。

而在程序员里面,给自己的描述是:

一名兼职一些管理与研究工作的程序员。

其实关于这个点,我看过周佬的一些公开场合的自我介绍,都是说自己是一个“兼职一些管理工作的程序员”,给自己这样的人设标签。

他在自己写的《程序员之路》一文中解释过这个标签。

他想要透过这个标签表达的是对于一枚程序员,以后是想要发展为一个架构师还是研发管理者,都不要轻易地离开技术领域的一线前沿。

离开技术、放弃编码的决定很可能会像你高考之后放下的数学、生物、地理等知识那样,一旦放手,毕生就很难有机会再重新捡起来。

当你放下代码的时间越长,久而久之,你对代码、技术、产品状态与团队研发状态的理解,渐渐的会和团队成员产生了偏差错位,丧失了细节上给予指导的能力,丧失了专业问题上提出接地气解决方案的能力,只能在无法短期难以校验对错的大战略方向提意见。

在会议、流程及团队管理措施上下功夫,在职业经理人式的宣讲与汇报上寻找存在感。

此刻,你便从团队的导师变成了管理者,最终你与团队的关系,从携手并肩奋斗的伙伴,完全演变成只能靠公司制度与管理职位的权力来维系雇佣关系。

我能理解周佬说的现象,其实是一个非常普遍的现象。甚至有的朋友走上管理岗位的目标就是不再写代码了,基于当前的市场和行业现状,这样的选择是无可厚非的。

只是,有没有那么一点点可能,不要完全抛弃代码。这也需要是你和团队之间的最行之有效的纽带。

就像《代码整洁之道》一书中说的:

软件架构师本身就是最好的程序员,他们会一直编写代码,虽然可能不会像其他程序员输出的代码量那样多,但是只有持续地编程,才能确保他们遇见其他程序员所面对的问题,体会其他程序员心中的感受,因此如果不编程,他们亦将无法胜任软件架构这项工作。

这本《凤凰架构》,周佬自己对它的定位是这样的:

我不服!这开源项目居然才888个星!?

给开发人员整理的关于软件架构方面的技能地图,同时系统的梳理自己的知识,并配备了对应技术方案的演示程序。

真的是一件利人利己的事情。

我本来的想法是先带着你囫囵吞枣的走一圈这一本书,主要起到一个介绍的作用。

但是越写越不得劲的感觉,于是我把写好的大部分都删除了。因为即使我写的这么卖力认真,都没有体现出这本书的价值的千分之一。

你得自己去读,你才知道我没有骗你:这真的是个宝藏啊!

所以我决定换个思路,告诉你这里面有什么就行了,其实就是书中的探索起步一小节。

如果你对里面的某一部分感兴趣,自己主动打开网站去翻一下,那么我的目的就达到了。

探索起步

我不服!这开源项目居然才888个星!?

这是探索起步的更新日志部分,可以看到周佬对于该项目一直在进行维护新内容:

我不服!这开源项目居然才888个星!?

而对于已有的内容,其中的错别字、不通顺的地方、含义不清的地方,他也在抽时间修改,最近的一次修改就是 6 月 6 日,昨天,上周日:

我不服!这开源项目居然才888个星!?

所以,相比于其他的大部分网上的文章来说,会更加实时、系统、优质一点。

全书分为五大部分和两个篇外,而为了让你快速定位到合适自己的部分,周佬也细心的介绍了每一部分对应的读者类型。

  • 引导篇 探索起步这部分面向于准备对文档介绍的内容亲身实践的探索者。
  • 第一部分 演进中的架构:这部分适合所有开发者,但尤其推荐刚刚从单体架构向微服务架构转型的开发者去阅读。
  • 第二部分 架构师的视角:这部分讨论与风格无关的架构知识,适合所有技术架构师、系统设计、开发人员。
  • 第三部分 分布式的基石:这部分面向于使用分布式架构的开发人员。
  • 第四部分 不可变基础设施:这部分面向于基础设施运维人员、技术平台的开发者。
  • 第五部分 技术方法论:这部分面向于在企业中能对重要技术决策进行拍板的决策者。
  • 篇外 随笔文章:这部分无特定读者对象,内容是笔者日常文章的整理。
  • 篇外 附录:这部分面向刚开始接触云原生环境的设计者、开发者。

演进中的架构

其中第一部分我读完之后做的思维导图如下:

我不服!这开源项目居然才888个星!?

我曾经就完整的经历过一个服务从单体系统时代,再到 SOA 时代,最后步入微服务时代的全过程。

所以能比较深刻的理解到周老说的观点:

架构并不是被发明出来的,而是持续演进的结果。

可能你对于其中的后微服务时代和无服务时代稍微有点陌生,但是我换个英文名称,你就应该是非常熟悉了。

后微服务时代其实就是云原生时代,Cloud Native。

而无服务其实就是 Serverless。

但是需要注意的是,周佬把 Serverless 排在了 Cloud Native 之后,其实它们两者并没有继承替代关系。不要因为周老对于两者的书写顺序产生了“无服务就会比微服务更加先进”的错误想法。

周佬对于这两者之间的关系描述是这样的:

如果说微服务架构是分布式系统这条路当前所能做到的极致,那无服务架构,也许就是“不分布式”的云端系统这条路的起点。

架构师的视角

第二部分的思维导图如下:

我不服!这开源项目居然才888个星!?

这一部分主要聊了我们做分布式服务时,一定会涉及到的问题,比如:远程服务调用(RPC)、分布式事务的处理、多级分流、架构安全。

我个人认为这一部分是干货满满的。

其中访问远程服务,对 RPC 和 REST 从各自的起源开始进行了一个详尽的描述:

我不服!这开源项目居然才888个星!?

事务处理小节,你可以看看“共享事务”的概念,其实我发现有一部分号称是微服务架构的项目,走向了“共享事务”的路线。其实这是一种伪分布式,或者说是“阉割版”的分布式。

“共享事务”的提法和这里所列的两种处理方式在实际应用中并不值得提倡,鲜有采用这种方式的成功案例,能够查询到的资料几乎都发源于十余年前 Spring 的核心开发者Dave Syer撰写的文章《Distributed Transactions in Spring, with and without XA》。笔者把共享事务列为本章四种事务类型之一只是为了叙述逻辑的完备,尽管拆分微服务后仍然共享数据库的情况在现实中并不少见,但笔者个人不赞同将共享事务作为一种常规的解决方案来考量。

透明多级分流系统从客户端到网络再到服务端的拆析,这是一种上帝视角的描述,对于一次请求的进过脉络梳理,清晰的了解到系统的方方面面。而这一部分的主题就是“架构师的视角”。

架构师就应该是从这样的一个比较统筹规划的角度去看待系统,不必进入到具体系统的细枝末节中去:

我不服!这开源项目居然才888个星!?

分布式的基石

第三部分分布式的基石:

我不服!这开源项目居然才888个星!?

共识算法、服务发现、流量治理、网络通信、监控预警共同构成了分布式的基石。

可以说如果是一个分布式的服务,都能找到上面的这些关键词的影子。

有些是应用系统自己做的,有些是开源框架就帮你搞定了,你甚至不知道它们的存在。

但是我认为上面的诸如流量治理和监控预警(可观察性)并不是一个分布式服务一开始搭建时所必须的。

大多数情况下,刚刚搭建好的分布式都处于一个蛮荒状态。随着时间推进和业务的发展,会慢慢补充上流量治理和监控预警。

也就是说如果想要分布式服务发展的方向是可监控、可控制的,那么这些东西都是应该有的。

所以“基石”一词,用的像是手术刀一样精准。

接着来到了第四部分,不可变基础设施:

我不服!这开源项目居然才888个星!?

到这里我们就要从微服务走向云原生了。

在这一章,周佬以容器、编排系统和服务网格的发展为主线,介绍虚拟化容器与服务网格是如何模糊掉软件与硬件之间的界限,如何在基础设施与通讯层面上帮助微服务隐藏复杂性,解决原本只能由程序员通过软件编程来解决的分布式问题。

接下来的“技术方法论”属于微服务避坑指南,从目的、前提、边界、治理四个角度去阐述如何更好的使用微服务。

随笔文章

最后一部分是“随笔文章”:

我不服!这开源项目居然才888个星!?

其中的《云原生时代,Java 的危与机》和《程序员之路》这两篇文章,建议你反复观看。

前者是技术方向的,后者是软技能方向的。

读完《Java 的危与机》,我感受到的是一场关于 Java 的自我革命已经悄然开始了。

Java 并不是一个优秀的开发语言,这一点我是非常承认且确定的。但是 Java 有一个庞大的用户群体和异常丰富的生态,这是它的护城河。所以短时间内还倒不下来。

但是大风起于青萍之末。虽然风雨欲来,而包括我在内的很多人都浑然不知。

在文章里面,周佬有这样的一段话:

Java 支持提前编译最大的困难在于它是一门动态链接的语言,它假设程序的代码空间是开放的(Open World),允许在程序的任何时候通过类加载器去加载新的类,作为程序的一部分运行。要进行提前编译,就必须放弃这部分动态性,假设程序的代码空间是封闭的(Closed World),所有要运行的代码都必须在编译期全部可知。这一点不仅仅影响到了类加载器的正常运作,除了无法再动态加载外,反射(通过反射可以调用在编译期不可知的方法)、动态代理、字节码生成库(如 CGLib)等一切会运行时产生新代码的功能都不再可用,如果将这些基础能力直接抽离掉,Helloworld 还是能跑起来,但 Spring 肯定跑不起来,Hibernate 也跑不起来,大部分的生产力工具都跑不起来,整个 Java 生态中绝大多数上层建筑都会轰然崩塌。

“整个 Java 生态中绝大多数上层建筑都会轰然崩塌。”

所以,Java 的这次变革属于釜底抽薪。

读完《Java 的危与机》之后,你再去看《Graal VM》一文,你就明白了:为什么说 Graal VM 的成功与否,与 Java 的前途命运息息相关。

其实这场变革已然悄悄开始,比如说一个小点:

大多数运行期对字节码的生成和修改操作,在 Graal VM 看来都是无法接受的。

但是比如 CGLIB 就是通过运行时产生字节码(生成代理类的子类)来做动态代理的。

这是目前的主流形式。

现在因为Graal VM 支持不了,所以必须由和框架一起来共同解决。

因此自 Spring Framework 5.2 起,@Configuration 注解中加入了一个新的 proxyBeanMethods 参数,设置为 false 则可避免 Spring 对与非接口类型的 Bean 进行代理。

同样地,对应在 Spring Boot 2.2 中,@SpringBootApplication 注解也增加了 proxyBeanMethods 参数,通常采用 Graal VM 去构建的 Spring Boot 本地应用都需要设置该参数。

可以看到的是为了推进 Java 生态向 Graal VM 兼容,Graal VM 主动拉拢了 Java 生态中最庞大的一个派系:Spring。

这即使壮士断腕,也是唇亡齿寒。

而我最喜欢的还是技术演示工程部分,并不是架空了去谈,而是直接把项目 Demo 都给你准备好了,开箱即用:

我不服!这开源项目居然才888个星!?

我发现周佬写的这个开源项目还有个特点,引用的部分会给出具体的官方的地址。严谨又权威,比如写到项目中用到的技术组件的时候:

我不服!这开源项目居然才888个星!?

真心推荐大家收藏起来,系统学习。

一个问答

在项目里面,我还发现了一个问答。

问题和回答都非常的好,搬运过来给你看看。

评论区:https://icyfenix.cn/methodology/forward-msa/prerequest.html

问题如下:

周大哥,看到了您说的马太效应。再联想到之前您讲的软件涅槃,而完善的微服务体系允许服务有涅槃的过程,有强大的容错能力。微服务发展又如此迅猛,觉得马太效应真的不远。

我不禁对最需要掌握的技能进行了思考,并产生了更强的焦虑感。

我是一名有七年工作经验的java开发工程师,28岁,目前在一家北京的传统信息软件技术公司,工资相对计算机行业偏低。

局限在java语言来说,jvm调优与并发编程等比较高阶的能力,是不是就很不关键了?

jvm我读了您写的《深入理解Java虚拟机:JVM高级特性与最佳实践》的第二版与第三版,由于工作中鲜有机会实践,只停留在一些理论理解,而缺失实践,理论知识也会淡忘。

并发编程读过《Java并发编程实战》,对并发编程有些了解,也有一些实践,一般水平。

微服务公司并没有用起来,实践经验也缺少。远程调用、分布式事务、注册中心、配置中心、熔断、限流等知识,通过看视频跟您的这个文档有一些了解。

java基础知识,经过这些年的磨练,是挺扎实了,spring能熟练使用。

常用设计模式有了解,也理解的比较到位。

我不想沦为螺丝钉。

我应该提升自己的哪些能力呢?

这些年只是做到了胜任分配给自己的工作。

现在发现自己缺少前瞻性思考,缺少对自己职业生涯的把控。

我现在想把握自己的职业生涯,请周大哥给一些指导。

我会通过招聘市场去挖掘市场需求,做整理,进行思考。

但是迫不及待的想跟您述说一下,请您不吝赐教,希望我的请求不是很唐突。

这个问题其实是很具有普遍性的:学了没地方实践,慢慢就忘记了。理论学了一大堆,聊起来可以谈笑风生,但是就是没有实际使用过。自己就是一颗螺丝钉。

周佬的回复如下:

写这文章不是为了贩卖焦虑,我也没有能力指导别人的职业生涯,但针对“应该提升自己的哪些能力”这类问题,我以前被问过很多次,这里可以重复一下。

我的建议就两个:

不要轻视不直接产生实践价值的知识;
不要对陷入已经被你熟练掌握的技术中不能自拔。

为了便于你理解,我做一个很土的比喻,把程序员提升自己类比成武侠中的练功,软件中的技能其实有很明显的“内力”和“武功”之分,譬如你提到的Java虚拟机,这类知识不仅是你在工作中鲜有机会实践,我也是差不多的。

大学计算机课程中,以“原理”二字结尾的课程,譬如计算机原理、操作系统原理、编译原理、数据库原理,等等,对绝大多数人而言,都不太会去设计处理器逻辑电路、设计程序语言和编译器,开发操作系统内核。

这些都有很经典的书:编译原理的龙书,计算机体系结构和程序运行的CSAPP,分布式与数据库原理的DDIA、操作系统原理的MOS,等等。这些书系统严谨全面,但可读性并不优秀,在B站/Coursera刷这些书作者们的公开课翻译视频也许是更好的方法。

这些技能能够辅助你去思考和分析问题,但是很难直接为你解决生产中的问题,以实践价值,就是以工作中是否有机会用到来衡量它们的作用是不合适的。

但这些课程之所以会是必修,是因为学习它们,能够为一名程序员的知识框架构筑好基础。

这话听起来很教条,可是当你一旦建立了相对完备稳固的知识框架,发现遇到的新知识、新技术,能够很自然地安放在已有知识体系的某个位置上,能够清楚感知到语言、技术、框架的设计意图和目标,甚至能共鸣到设计者当时所想,就会产生一种理所当然的感觉。

这样你接受新知识的认知负荷就会比别人更低,掌握起来更快速,理解起来更深刻。

我在这文档开篇中所说的,写这部文档是以整理自己的知识框架为目的,并非场面话,这点的确就是程序员如何学习新知识的关键,在知识快速迭代IT业界,这也是决定一名程序员能力上限有多高的根本因素。

相对的,那些具体的、用来解决生产中问题的技术和方法,譬如你提到的Spring、设计模式,我将其类比为“武功”。

这当然也是重要的,只有内力没有武功无法行走江湖,空有一身理论,但写不出代码来(包括那些只定大方向的架构师、设计者),我认为不肯定是合格的程序员,也很难指望能成为一名出色的技术领导(难以服众)。

但是具体的“武功”应该是能够快速捡起的,也能快速“忘掉”的,就是避免将一件事情做熟了,就一直陷在这件事情里面,避免拿到一把好的锤子,就看着一切问题都像是钉子。

很多程序员都抱怨,自己是CRUD Boy,自己在业务逻辑中打滚,没有机会接触底层的或者前瞻性的技术,所以自己技术难以提升。

这里当然有客观原因的存在,但往往也是受到了主观原因放大。

程序员其实与旧时代的手工技艺者差不多,骨子里就有天生的技术崇拜,你写的代码比别人的优雅健壮高性能,你杀BUG比别人快速干净利索,就会受到大家的认可。

很自然地,更多偏向技术偏向深层次的工作就会落到你这里,至少你会有话语权,有选择做哪些事情的权利,是否要一直在围绕着你最熟悉的业务去打滚是由你决定的。

学习武艺成为“武林高手”,是成为大BOSS之后才不必长期面对虾兵蟹将的纠缠。

学习一门具体的技术,也是为了用它解决好问题,然后把它忘掉,去掌握那些更深层次的、更前沿,而且自己还不会的技术。

最后还有个追问和回答如下:

我不服!这开源项目居然才888个星!?

不知道你看到这个回答后的感受是怎么样的。

至少对我而言,振聋发聩。

特别是这两点:

不要轻视不直接产生实践价值的知识;
不要对陷入已经被你熟练掌握的技术中不能自拔。

已经放入手机标签中,时常提醒自己。

与君共勉。

最后说一句

最后再放一次开源项目的地址:

https://icyfenix.cn/

— EOF —

转自:https://mp.weixin.qq.com/s/8ASb7Aod6DAnIyW02TXfUQ

一套完整的 后台管理系统

作者:huanzi-qch

链接:https://www.cnblogs.com/huanzi-qch/p/11534203.html

前言

这套Base Admin是一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理,系统设置、实时日志,实时监控,API加密,以及登录用户修改密码、配置个性菜单等

技术栈

前端:layui

java后端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql

工程结构说明

java部分、html、js、css部分都是大目录下面按单表一个子目录存放

一套完整的 后台管理系统,赚钱就靠它了!

一套完整的 后台管理系统,赚钱就靠它了!

运行预览

效果先睹为快,具体介绍在下方,按功能点进行详情介绍

一套完整的 后台管理系统,赚钱就靠它了!

功能演示

登录

(为了方便演示,密码输入框的类型改成text)

配置文件分支选择,dev环境无需输入验证码

一套完整的 后台管理系统,赚钱就靠它了!

一套完整的 后台管理系统,赚钱就靠它了!

同时支持多种登录限制

允许/禁止账号多人在线

一套完整的 后台管理系统,赚钱就靠它了!

软删除

一套完整的 后台管理系统,赚钱就靠它了!

限制登录IP地址

一套完整的 后台管理系统,赚钱就靠它了!

账号过期

一套完整的 后台管理系统,赚钱就靠它了!

更多登录限制,还可以继续扩展

系统设置

一下简单的系统属性设置,想支持更多的配置可自行扩展(比如这里的:用户管理初始、重置密码)

一套完整的 后台管理系统,赚钱就靠它了!

系统设置新增部分功能,详见文末“补充更新”。

推荐阅读:设计模式入门

菜单管理

菜单管理是一棵layui的Tree

增删改

一套完整的 后台管理系统,赚钱就靠它了!

权限管理

增删改查

一套完整的 后台管理系统,赚钱就靠它了!

动态权限加载

权限的加载并不是写死在代码,而是动态从数据库读取,每次调用save方法时更新权限集合

1、妲己是ROLE_USER权限,权限内容为空,无权访问/sys/下面的路径(http://localhost:8888/sys/sysUser/get/1)

2、使用sa超级管理员进行权限管理编辑,给ROLE_USER的权限内容添加 /sys/**,妲己立即有权限访问(http://localhost:8888/sys/sysUser/get/1)

一套完整的 后台管理系统,赚钱就靠它了!

用户管理

主要包括用户信息、登录限制的维护,菜单、权限的分配等

一套完整的 后台管理系统,赚钱就靠它了!

修改用户权限是下一次登录生效

一套完整的 后台管理系统,赚钱就靠它了!

修改用户菜单是刷新系统即可生效

一套完整的 后台管理系统,赚钱就靠它了!

用户管理新增“当前在线用户”管理,详见文末“补充更新”。

推荐阅读:设计模式入门

登录用户信息

基本信息

登录用户只能修改部分信息,例如名称、修改密码

一套完整的 后台管理系统,赚钱就靠它了!

修改密码

密码使用的是MD5加密并转换为16进制字符串存储,用户除了能主动修改密码外,还能叫管理员重置密码

一套完整的 后台管理系统,赚钱就靠它了!

一套完整的 后台管理系统,赚钱就靠它了!

个性菜单

用户可以自行配置自己的个性化快捷菜单

一套完整的 后台管理系统,赚钱就靠它了!

实时日志

使用websocket,实时将日志输出到web页面,1秒刷新一次

注意:这里的日志配置只配置了dev环境,prod环境尚未为空,发布生产环境前记得先配置,否则生成的日志文件将不会输入日志内容!

一套完整的 后台管理系统,赚钱就靠它了!

一套完整的 后台管理系统,赚钱就靠它了!

实时监控

实时监控的是系统硬件环境、以及jvm运行时内存,注:因本人暂无Linux环境,所以只测试了windows环境,有问题请及时反馈,谢谢!

使用websocket,实时将数据输出到web页面,1秒刷新一次

一套完整的 后台管理系统,赚钱就靠它了!

API加密

请求参数加密

一套完整的 后台管理系统,赚钱就靠它了!

响应数据加密

一套完整的 后台管理系统,赚钱就靠它了!

1、系统设置新增API加密开关,可一键关闭、开启API加密;

开启API加密

一套完整的 后台管理系统,赚钱就靠它了!

关闭API加密

一套完整的 后台管理系统,赚钱就靠它了!

关键点讲解

1、定制url访问权限,动态权限读取,需要自定义配置认证数据源、认证管理器、拦截器,详情步骤请参考:

https://www.jianshu.com/p/0a06496e75ea;

2、API加密中,由于登录校验是Spring Security做的,因此我们要在UsernamePasswordAuthenticationFilter获取账号、密码之前完成解密操作,正好我们的校验验证码操作就是在它之前,同时要做响应数据的加密操作,所以登录部分的API加密光按照我们之前的博客来还是不够的,需要在CaptchaFilterConfig进行解密操作,解密后new一个自定义RequestWrapper设置Parameter,并将这个新对象传到doFilter交由下一步处理

3、还是API加密问题,我们是在程序启动的时候生成后端RSA秘钥对,正常来说我们在访问登录页面进行登录的时候前端获取一下就可以了,但在开发环境中,我们通常开启热部署功能,改完代码程序可能会自动重启,但登录用户信息仍然保持在本地线程,系统依旧处于登录状态没有跳转到登录页面,导致后端公钥已经改变,但前端依旧用的是旧的后端公钥,所有导致加解密失败;解决:在访问index首页时也获取一下后端公钥,这样在开发的时候idea热部署后刷新页面就可以了(已提交最新代码,解决热部署后刷新页面还是API加解密失败问题;现在热部署后刷新页面即可)

更新

1、新增百度富文本的使用,但还没配置上传接口:

UEditor文档:http://fex.baidu.com/ueditor/#start-start

对应字段类型,mysql要改成longtext

一套完整的 后台管理系统,赚钱就靠它了!

2、新增“”记住我“”功能,也就是rememberMe,原理以及源码探究请看这位大佬的博客:

https://blog.csdn.net/qq_37142346/article/details/80114609

一套完整的 后台管理系统,赚钱就靠它了!

一套完整的 后台管理系统,赚钱就靠它了!

3、系统设置新增系统颜色,头部、左侧菜单的颜色可按心情切换(SQL文件已同步更新)

一套完整的 后台管理系统,赚钱就靠它了!

4、用户管理模块新增“当前在线用户”管理,可实时查看当前在线用户,以及对当前在线用户进行强制下线操作

一套完整的 后台管理系统,赚钱就靠它了!

代码地址

GitHub:https://github.com/huanzi-qch/base-admin

码云:https://gitee.com/huanzi-qch/base-admin