# sa-token-demo **Repository Path**: mxvj/sa-token-demo ## Basic Information - **Project Name**: sa-token-demo - **Description**: No description available - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-17 - **Last Updated**: 2021-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目说明文档 - 1.本项目主要是一个研究,学习,整合新技术,新框架,新工具的demo示例工程,主要目的是为后期项目开发提供技术指导和支撑, - 2.此外本项目也会在demo示例中介绍整合工具的特性,性能,相似工具的对比说明等 - 3.因为是调研性质项目,因此本项目中多数整合的技术或者框架都是较新版本的 ## 1.开发环境搭建与工具使用 - IDEA开发 - JRebel插件安装 - Lombok插件安装 - Free MyBatis plugin插件安装 - Maven Helper插件安装 - HTTP Client - JDK 15 - maven 3 - git工具 - navicat 15工具 - mobaxterm 20.6工具 - chrome 浏览器 - ElasticSearch-Head插件安装 - FeHelper - SwitchyOmega - RedisDesktopManager工具 - emeditor 文本工具 - everything 搜索工具 - bandizip 压缩工具 - snipaste 截图工具 - postman 工具 - python3.8 ## 2.系统框架整合说明 ### 2.1 JDK 15 新功能特性 - 360:Sealed Classes (Preview):封闭类(预览特性),可以是封闭类和或者封闭接口,用来增强 Java 编程语言,防止其他类或接口扩展或实现它们 - 371:Hidden Classes 隐藏类是为框架(frameworks)所设计的,隐藏类不能直接被其他类的字节码使用,只能在运行时生成类并通过反射间接使用它们。 - 372:Remove the Nashorn JavaScript Engine:移除了 Nashorn JavaScript 脚本引擎、APIs,以及 jjs 工具。 - 373:Reimplement the Legacy DatagramSocket API:重新实现了老的 DatagramSocket API 接口,更改了 java.net.DatagramSocket 和 java.net.MulticastSocket 为更加简单、现代化的底层实现,更易于维护和调试。 - 374:Disable and Deprecate Biased Locking:准备禁用和废除偏向锁,在 JDK 15 中,默认情况下禁用偏向锁,并弃用所有相关的命令行选项。 - 375:Pattern Matching for instanceof (Second Preview):模式匹配(第二次预览) Java 14 之前: ```java if (object instanceof Kid) { Kid kid = (Kid) object; // ... } else if (object instanceof Kiddle) { Kid kid = (Kid) object; // ... } ``` Java 14+: ```java if (object instanceof Kid kid) { // ... } else if (object instanceof Kiddle kiddle) { // ... } ``` - 377:ZGC: A Scalable Low-Latency Garbage Collector:一个可伸缩、低延迟的垃圾回收器。 - 378:Text Blocks:文本块,是一个多行字符串,它可以避免使用大多数转义符号,自动以可预测的方式格式化字符串,并让开发人员在需要时可以控制格式。 Java 13 之前: ```java String html = "\n" + "
\n" + "Hi, Java技术栈
\n" + "欢迎关注,分享更多干货
\n" + " \n" + "\n"; ``` Java 13+: ```java String html = """Hi, Java技术栈
欢迎关注,分享更多干货
"""; ``` - 379:Shenandoah: A Low-Pause-Time Garbage Collector:Shenandoah:一个低停顿时间的垃圾回收器。 - 381:Remove the Solaris and SPARC Ports:移除了 Solaris 和 SPARC 端口。 - 383:Foreign-Memory Access API (Second Incubator):外存访问 API(二次孵化),可以允许 Java 应用程序安全有效地访问 Java 堆之外的外部内存。 - 384:Records (Second Preview):Records 最早在 JDK 14 中成为预览特性,JDK 15 继续二次预览。 - 385:Deprecate RMI Activation for Removal:废除 RMI 激活,以便在将来进行删除。 ### 2.2 sa-token sa-token是一个轻量级Java权限认证框架,主要解决: 登录认证、权限认证、Session会话 等一系列权限相关问题 项目地址:http://sa-token.dev33.cn/ 本项目将集成sa-token作为后台权限工具 整合功能: - 登录认证:过滤掉部分不需要登录认证的url,接口 - ### 2.3 nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 文档主页:https://nacos.io/zh-cn/docs/what-is-nacos.html 整合功能: ### 2.4 knife4j ### 2.5 AJ-Captcha 介绍:行为验证码(滑动拼图、点选文字) https://gitee.com/anji-plus/captcha ### 2.6 screw-core 介绍:简洁好用的数据库表结构文档生成工具 地址:https://gitee.com/leshalv/screw ### 2.7 Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率 https://gitee.com/loolly/hutool.git ### 2.8 druid ### 2.9 redisson 介绍:Redisson是Redis服务器上的分布式可伸缩Java数据结构 ### 2.10 Plumelog 介绍:Plumelog一个简单易用的java分布式日志组件 地址:https://gitee.com/frankchenlong/plumelog ### 2.11 Elasticsearch(7.9.3) 新功能特性 #### V6.x - Lucene 7.x - Removal of types,在 6.0 里面,开始不支持一个 index 里面存在多个 type - 跨多个Elasticsearch集群搜索,保留原来的索引在 5.x 群集,跨群集搜索来同时搜索 6.x 和 5.x 群集 - 跨群集复制(CCR) - 更友好的的升级及数据迁移,在主要版本之间的迁移更为简化,体验升级 - 性能优化 - 稀疏区域改进,降低了存储成本 - 通过索引排序,可加快排序的查询性能 #### V7.x - Lucene 8.0 - 重大改进-正式废除单个索引下多 Type 的支持(只有_doc这一个默认type) - 7.1开始,Security 功能免费使用 - ECK,允许用户在 Kubernetes 上配置,管理和操作 Elasticsearch 集群 - TransportClient 被废弃以至于,ES7 的 Java 代码,只能使用 restclient - 新功能 - 新的集群协调 - 功能更完善的 REST Client -- Script Score Query,下一代的评分方式 - 性能优化 - 默认的 Primary Shard 数从 5 改为 1,避免 Over Sharding - 性能优化,更快的 Top K 检索 ### 2.12 XXL-JOB() 介绍:一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 地址:https://gitee.com/xuxueli0323/xxl-job ### 2.12 go-fastdfs(V1.4.0) 介绍: 地址: ## 3.常用操作指令记录 - 修改文件夹权限 ```shell script chown -R swt:swt agy-v3 ``` - 赋予可执行权限 ```shell script chomd -R 755 start.sh ``` - 修改脚本中换行符 ```shell script vim 编辑脚本 :set ff=unix ``` - 防火墙开放端口:如果服务启动,但是chrome无法访问,可能是有防火墙,打开防火墙设置如下 ```shell script firewall-cmd --zone=public --add-port=9999/tcp ``` - 两台服务器之间同步 ```shell script rsync -avzP root@192.168.6.1:/home/agy-v3 . ``` ## 4.注意事项 ## 5.服务运行 - nacos运行 ```shell script D:\nacos\1.4.1\bin\startup.cmd -m standalone 启动服务:http://127.0.0.1:8848/nacos/ ```