首页 文章 精选 留言 我的

精选列表

搜索[jdk17],共354篇文章
优秀的个人博客,低调大师

JDK17新特性详解

JDK16新特性详解,2021-03-17正式发布 JDK15新特性详解,2020-09-15正式发布 JDK14新特性详解,2020-03-17正式发布 JDK十三新特性详解,2019-09-17正式发布 JDK12新特性详解,2019-03-19正式发布 JDK11新特性详解,2018-09-25正式发布 JDK10新特性详解,2018-03-20正式发布 JDK9 新特性详解,2017-09-21正式发布 JDK8 新特性详解,2014-03-18正式发布 预览版:该功能在当前版本可以使用,如果效果不是很好的话,可能以后的其他版本就会删去该功能。 最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。 1、switch新增模式(预览版) 基于JDK16 instanceof模式匹配(最终版)优化升级switch使用方法,先回忆下JDK16模式匹配(最终版) if (obj instanceof String s) { // 直接使用 s拼接字符串 s += "heihei"; } else if (obj instanceof Integer i){ // 直接使用i进行整型逻辑运算 i += 1; } switch可直接用instanceof模式匹配选择(需要提前考虑null判断) Object o; switch (o) { case null -> System.out.println("首先判断对象是否为空,走空指针逻辑等后续逻辑"); case String s -> System.out.println("判断是否为字符串,s:" + s); case record p -> System.out.println("判断是否为Record类型: " + p.toString()); case int[] arr -> System.out.println("判断是否为数组,展示int数组的长度" + ia.length); case Integer i -> System.out.println("判断是否为Intger对象,i:" + i); case Student s -> System.out.println("判断是否为具体学生对象,student:" + s.toString()); case UserCommonService -> System.out.println("判断是否为普通用户实现类,然后走普通用户逻辑"); case UserVipService -> System.out.println("判断是否为vip用户实现类,然后走vip用户逻辑"); default -> System.out.println("Something else"); } 2、Realed class密封类(最终版) 密封的类和接口限制了其他类或接口可以扩展或实现它们,允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更具声明性的方式来限制超类的使用。当使用final时,就不能子类继承,但同时开发接口的开发者又不想某些接口被继承,所以针对这一点,需要引入密封类来解决 public sealed interface Shape{ final class Planet implements Shape {} final class Star implements Shape {} final class Comet implements Shape {} } public abstract sealed class Test{ final class A extends Test {} final class B extends Test {} final class C extends Test {} } 3、随机数增强 对开发无实际意义 4、浮点运算更加严格 简化数字敏感库开发,包括java.lang.Math和java.lang.StrictMath(对开发无实际意义)

优秀的个人博客,低调大师

《灯灯》多租户快速开发平台 3.11.0-java17 版本发布,基于 jdk17 的多租户解决方案平台

3.11.0-java17 版本更新详情: build spring-boot-starter-parent>3.1.3 spring-cloud-dependencies.version>2022.0.4 seata.version>1.7.1 druid.version>1.2.19 mybatis.version>3.5.13 mybatis-spring.version>2.1.1 mybatis-plus.version>3.5.3.2 mybatis-plus-generator.version>4.1.3 tencentcloud-sdk-java.version>3.1.831 aliyun-dysmsapi.version>2.0.23 aliyun-sdk-oss.version>3.16.0 refactor jwt 签名在配置文件中配置,防止硬编码。 fix 解决 knife4j 文档通过网关聚合时,接口的uri地址显示不完整的问题 解决 ParameterObject参数在 knife4j 文档显示的问题 Wraps 关键词替换时,只替换 condition=like 的字段 FormValidatorController 获取表单校验规则时,若子类存在父类的字段,获取的校验规则多了一个getXxx字段 《灯灯》中后台快速开发平台 lamp 项目组成 1) 工具集 ( lamp-util 项目必备,其他 2 个可选) 项目 gitee github 备注 工具集 lamp-util lamp-util 业务无关的工具集,cloud 和 boot 项目都依赖它 代码生成器 lamp-generator lamp-generator 给开发人员使用 定时调度器 lamp-job lamp-job 尚未开发 2) 后端 (下面 2 个项目功能一致,任选其一即可) 项目 gitee github 备注 微服务版 lamp-cloud lamp-cloud SpringCloud 版 单体版 lamp-boot lamp-boot SpringBoot 版 (和 lamp-cloud 功能基本一致) 示例项目 lamp-samples lamp-samples 微服务版的示例功能 3) 前端 (下面 3 个项目功能一致,任选其一即可) 项目 gitee github 备注 租户后台 lamp-web lamp-web 基于 vue-admin-element 开发 (vue2.x) 租户后台 (强烈推荐!👏👏👏) lamp-web-plus lamp-web-plus 基于 vue-vben-admin 开发 (vue3.x) 如果你非要说 lamp 是 Linux+Apache+MySQL+PHP,那就算是吧,毕竟 PHP 是世界上最好的语言,我也希望此项目成为世界上最好的后台框架!😈😈😈 lamp-cloud 简介 lamp-cloud的前身是zuihou-admin-cloud,从 3.0.0 版本开始,改名为 lamp-cloud,它是lamp项目的其中一员。 lamp-cloud基于 jdk11/jdk8 +SpringCloud+ SpringCloudAlibaba+SpringBoot的微服务快速开发平台,其中的可配置的 SaaS 功能尤其闪耀, 具备 RBAC 功能、网关统一鉴权、Xss 防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。 核心技术采用 Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking 等主要框架和中间件。 希望能努力打造一套从JavaWeb基础框架-分布式微服务架构-持续集成-系统监测的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的多租户实现方式。 租户模式 描述 优点 缺点 NONE (非租户模式) 没有租户 简单、适合独立系统 缺少租户系统的优点 COLUMN (字段模式) 租户共用一个数据库,在业务表中增加字段来区分 简单、不复杂、开发无感知 数据隔离性差、安全性差、数据备份和恢复困难、 SCHEMA (独立数据库) 每个租户独立一个 数据库 (schema),执行 sql 时,动态在表名前增加 schema 简单、开发无感知、数据隔离性好 配置文件中必须配置数据库的 root 账号、不支持复杂 sql 和 sql 嵌套自定义函数 DATASOURCE (独立数据源) 每个租户独立一个数据源,执行代码时,动态切换数据源 可独立部署数据库,数据隔离性好、扩展性高、故障影响小 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库 DATASOURCE_COLUMN (独立数据源 + 字段模式) 每个租户独立一个 数据库 (数据源),执行代码时,动态切换数据源,在动态拼接 子租户 id 二次隔离 可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库 lamp 项目演示地址 https://tangyh.top ps: 演示环境中内置租户没有写入权限,若要在演示环境测试增删改,请使用 lamp_pt 账号查询租户管理员账号后,登录新租户测试 lamp-cloud 技术栈 / 版本介绍: 所涉及的相关的技术有: JSON 序列化:Jackson 消息队列:RabbitMQ 缓存:Redis 数据库: MySQL 5.7.9 或者 MySQL 8.0.19 定时器:采用 xxl-jobs 项目进行二次改造 前端:vue + element-ui 持久层框架: Mybatis-plus 代码生成器:基于 Mybatis-plus-generator 自定义 API 网关:Gateway/zuul 服务注册 & 发现和配置中心: Nacos 服务消费:OpenFeign 负载均衡:Ribbon 服务熔断:Hystrix 项目构建:Maven 分布式事务: seata 分布式系统的流量防卫兵: Sentinel 监控: spring-boot-admin 链路调用跟踪:SkyWalking 文件服务器:FastDFS 5.0.5 / 阿里云 OSS / 本地存储 / MinIO Nginx 部署方面: 服务器:CentOS Jenkins Docker Kubernetes

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册