2021

美国时间12月2日,Spring Cloud 正式发布了第一个支持 Spring Boot 2.6 的版本,版本号为:2021.0.0,codename 为 Jubilee。 在了解具体更新内容之前,先提个最重要的点:2021.0.0版本对应的Spring Boot是从2.6.1开始的,所以如果在升级的时候不要用2.6.0版本。 好了,下面就跟DD一起来看看这个版本的内容吧! 更新内容Spring Cloud Commons 支持为每个负载均衡进行配置,该特性也同样适用于Gateway、Contract和Openfeign。 Spring Cloud Config 增加与AWS Secrets Manager、AWS Parameter Store和GCP Secret Manager的集成。 Spring Cloud Gateway 支持基于Redis的动态路由 支持HTTP 2...

昨天刚刚跟大家聊了Jetbrains即将推出轻量级编辑器Fleet,以挑战 VS Code的消息,今天又收到了IntelliJ IDEA 2021.3正式发布的推送。 不说废话,下面就跟我们一起来看看这个版本带来了哪些惊艳的功能! 远程开发 在这个版本中的远程开发还不是一个正式版本,而是BETA版,但通过这个BETA版本,也可以体验IDEA“远程开发”给我们带来的全新体验。 通过该功能的支持,我们可以从世界任何地方轻松连接到运行 IntelliJ IDEA 后端的远程计算机。所有处理都将在这台强大的远程计算机上进行,您将能够像在本地计算机上一样无缝地处理项目。 如何使用呢?如下图,我们只需要在 IntelliJ IDEA 的欢迎屏幕或通过 Toolbox App 中新增的 JetBrains Gateway 应用程序启动此功能。 该远程开发功能除了完成我们日常的编码之外,还能与...

多年来,我们一直被问到:“JetBrains 什么时候会创建一个轻量级编辑器?” 今天,我们很高兴宣布—— Fleet,一个有一点不一样的轻量级编辑器! 🔗 https://www.jetbrains.com/zh-cn/fleet/ 当您第一次启动 Fleet 时,它会作为一个功能齐全的编辑器启动,具有语法高亮显示、简单的代码补全以及您对一个编辑器期待的所有功能。 但还不止如此! Fleet还是一个功能齐全的 IDE具有智能补全、重构、导航、调试以及 IDE 中一直存在的所有功能。更重要的是,点击一键即可使用所有这些功能。 Fleet 是从头开始构建的,拥有全新的架构和用户界面。让我们深入了解 Fleet! Fleet是适用于多语言的开发者通常在不同的项目中会使用到不同的技术,有时在单个项目中也会使用不同的技术。在 JetBrains,我们一直致力于充分利用用户所使用的环境...

11月29日 Spring Boot 2.6.1 正式发布,主要是为了支持本周即将发布的 Spring Cloud 2021。 此版本包括 11 个错误修复和文档改进。 Bug修复 模式分析 PatternParseException 的操作消息中的 matching-strategy 属性的名称不正确#28839 修复 ErrorPageSecurityFilter 部署到 Servlet 3.1 的兼容问题#28790 QuartzDataSourceScriptDatabaseInitiializer 不提供 MariaDB #28779的映射 “test” 和 “Inlined Test Properties” 属性源顺序不正确#28776 在没有 spring-security-web 的 Servlet 应用程序中使用 Spring Security 时出现 Array...

作为程序员的我们应该都有一个感受,一旦进入某个项目,从开发,到发布,到生产,到 hotfix,到后期维护,那基本都有你的份。 正在开发某个 feature,老板突然跳出来说让你做生产上的 hotfix 更是家常便饭,面对这种情况,使用 Git 的我们通常有两种解决方案: 草草提交未完成的 feature,然后切换分支到 hotfix git stash | git stash pop 暂存工作内容,然后再切换到 hotfix 第二种方式较第一种还好很多,可是面对下面这些场景,stash 依旧不是很好的解决方案。 我们面对的场景 正在 main 分支上跑长时间的测试,切换到 hotfix 或 feature, 测试就会中断 项目非常大,频繁的切换索引,成本非常高 有几年前 release 的旧版本,设置和当前不一样,IDE restructure 适配切换也会带来很大的开销 切换分...

这两年,随着疫情的出现,很多人的生活习惯都被逐渐改变了。例如在十年前,很多人说起上课、说起开会,一定是要面对面才能完成的事情,但是如今更多的都是云教室、在线会议,TJ君当然要与时俱进,今天跟大家分享一个功能强大的前后端完全开源的简约美观的互动教室项目 Agora Flat Agora Flat,支持MAC、WONDOWS不同平台,并且有手机版、电脑版、网页版各种不同的实现形式。可以轻松创建丰富多样的在线互动房间,实现多场景灵活切换,完成高质量的互动,例如教学或开会。 特点既可以用于大型多人授课或会议,由主持人进行课程或会议的讲解,参加者举手发言在线互动;又可以进行一对一的私人定制化互动。 同时项目内置多种经过专业设计的精美主题,无需专业设计经验就可以使用各种不同效果的UI风格。 语言与功能项目主要实现部分都是运用TypeScript语言进行实现,辅以小部分的JavaScript...

昨天,是人人影视粉丝们悲伤的一天,人人影视字幕分享官微宣布:人人影视不可能再恢复或重启。App的尸体可以删了,我们不可能解决的了版权问题。 人人影视,可能是许许多多喜欢追剧的小伙伴最初打开那扇追剧大门的启蒙老师,如今官方的正式宣布,可以说是一个时代的告别、缩影。 为了纪念我们曾经喜欢过的用过的人人影视,TJ君今天跟大家分享一款基于Material Design + MVP + RxJava + Retrofit + Realm + Glide + Dagger2 实现的在线视频App: 微影 微影的主要特点有: 使用RxJava配合Retrofit2做网络请求 使用RxUtil对线程操作和网络请求结果处理做了封装 使用RxPresenter对订阅的生命周期做管理 使用AndroidEventBus来方便组件间的通信 使用Material Design控件和动画 使用MVP架构整个...

昨天,Spring官方正式发布了Spring Boot今年最后一个特性版本:2.6.0 同时,也宣布了2.4.x版本的终结。 那么这个新版本又带来了哪些新特性呢?下面就一起跟着DD来看看吧! 重要特性1. Servlet应用支持在 Cookie 中配置 SameSite 属性该属性可通过server.session.cookie.same-site属性来配置,共有三个可选值: Strict 严格模式,必须同站请求才能发送 cookie Lax 宽松模式,安全的跨站请求可以发送 cookie None 禁止 SameSite 限制,必须配合 Secure 一起使用 2. 支持为主应用端口和管理端口配置健康组这在 Kubernetes 等云服务环境中很有用。在这种环境下,出于安全目的,为执行器端点使用单独的管理端口是很常见的。拥有单独的端口可能会导致不可靠的健康检查,因为即使健康...

B站一定是各位小伙伴平日喜欢浏览的网站之一,各种鬼畜视频、教育材料、五花八门、精彩绝伦,同时B站还有各种功能丰富的API接口开放给大家使用。 但是有些东西一旦放开了,就会出现各种各样的非官方衍生品,就像B站的API接口,传播开来变成了散落在世界各地的各个角落的各种野生API,想要整理收集归类这些API似乎是一个不可能的任务。 但是就是有人喜欢知难而上,TJ君今天要给大家分享的就是这样一个项目 bilibili-API-collect项目旨在收集整理B站web端、移动端以及TV端存在的各种API,并研究具体的使用方法,给出详细的使用说明,方便用户进行查阅。 截止TJ君写稿子的时候,项目组用到的研究方法有: 黑箱法 控制变量法 js逆向分析法 apk拆包及反编译法 网络抓包法 ….. 这里需要提示大家的是: 所有api均为标准http协议,返回数据大都为json或protobuf...

今天TJ君学到一个新名词 电子游戏阳痿,是指: 作为一个曾经爱玩游戏的人,在时间充裕、精力良好的状态下,依然不能把注意力集中在游戏上,已经失去了享受游戏的乐趣 TJ君看了看自己,似乎就是这个症状,毕竟现在更多的精力都放在了编程和学习上,不做点什么总觉得心里慌慌。 不过即使不再想玩太多的游戏,TJ君骨子里还是对游戏有一股热爱,所以今天就想来跟大家分享一个用JAVA写的塔防游戏~ Mindustry 作为一款塔防游戏,Mindustry的各种设置中规中矩,玩家需要建造完善的传送带防御矩阵,用来给防御塔提供弹药,生产更多的材料,保护自己的家园,隐隐约更多的是考验玩家的资源管理能力。 游戏的实际运行展示效果看上去也是非常舒服,作为一款塔防,还有迷雾效果。玩到后期满屏幕的建筑,实在是需要良好的逻辑运算能力才能搞定,幸好程序猿们这方面都是很强滴! 需要要注意的是,如果想自己编译游戏,需...

平日里大家编码的时候肯定想着如何能提高自己的工作效率,那么一种方法肯定是提高自身的编码水平,但是同时工欲善其事必先利其器,如果有一款好的工具,说不定也能实现提升开发效率。 今天TJ君要跟大家分享的就是这样一款场景化低代码(LowCode)搭建工作台, sparrow,通过简单的操作实时输出源代码 sparrow支持基于vue、element-ui组件库的中后台项目的输出,目标只有一个,那就是: 提升开发效率!!!!用过之后就会发现,sparrow的优势主要体现在两个方面: 1、使用方便,通过对拥有业务逻辑的代码的组装,可以完成函数级别的项目搭建,靠拖拉拽就可以,不需要太多手工编码,最终生成可供开发使用的源代码。 2、可扩展性,可以通过AST读取组件源代码,进行组合,只要页面的逻辑是可拆解的就可以任意组装; 基于上述两个方面,sparrow的特性可以总结为三个特点: 低代码开发, 快...

这年头一个程序猿自己开发个小游戏已经不是啥稀罕事,前两天有一个好朋友给TJ君介绍了一款游戏,像素级的,通过键盘操作,有简单的武器系统及多人模式,看上去也算满精致的,TJ君先放一段自己试玩的动图给大伙瞅瞅: 这款可爱游戏的名字叫做Space Huggers,游戏有不同的关卡,不同的士兵及对应的攻击效果,整体感觉呢是中规中矩,小伙伴们肯定要奇怪了,难道今天TJ君要推荐的就是这款游戏吗?好像。。。太平平无奇了点吧。 的确,这款游戏估计对于一些资深的程序猿来说并不是很难得事情,但这款游戏的特点是在于他的大小! 你敢想象这款看上去基本游戏功能都完备的游戏,整体容量只有13KB吗? 对的你没看错,是13KB,不是MB不是GB,是KB! 现在的游戏随着技术的发展动不动就是几十G,前段时间的仙剑7,TJ君买了一个,安装完大概70G的容量吧。 虽然说是像素级别的游戏,但是往往也是几百几十MB,1...

前两篇文章分别体验了Spring Authorization Server的使用。今天来讲讲Spring Authorization Server授权服务器的配置。强烈建议自己手动搭建一次试试,纸上得来终觉浅,深知此事要躬行。提升你的代码量才是提高编程技能的不二法门,这也是本篇教程的意义所在。同时也希望多多点赞,转发,多多支持作者原创分享。 配置依赖首先要创建一个Spring Boot Servlet Web项目,这个不难就不赘述了。集成Spring Authorization Server需要引入: <!-- spring security starter 必须 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>s...

@Transactional是我们在用Spring时候几乎逃不掉的一个注解,该注解主要用来声明事务。它的实现原理是通过Spring AOP在注解修饰方法的前后织入事务管理的实现语句,所以开发者只需要通过一个注解就能代替一系列繁琐的事务开始、事务关闭等重复性的编码任务。 编码方式确实简单了,但也因为隐藏了直观的实现逻辑,一些错误的编码方法可能会让@Transactional注解失效,达不到事务的作用。最直接的表现就是:方法执行过程中抛出了异常,但事务没有回滚,最终导致了脏数据的产生。 之前我在博客上也写过一篇有趣的讨论我来出个题:这个事务会不会回滚?,当时很多人都给出了标准的错误答案,如果没看过的小伙伴不妨进去挑战一下? 虽然之前讨论了一些特殊情况,但还是一直有小伙伴会邮件、微信群里问一些关于事务失效的问题。主要还是@Transactional声明事务失效的情况真的是多种多样!所以,今...

上一篇我们初次体验了Spring Authorization Server,很多粉丝都希望对这个新授权框架有进一步了解。 所以今天我们再进一步再从配置上来了解和OAuth2.0授权服务器相关的过滤器,进而对Spring Authorization Server的整个体系结构作进一步了解。还请多多点赞、转发、再看,这是对胖哥的最大鼓励。 Spring Security的模块化配置在开始之前,我们先来回顾一下上一篇中提到OAuth2.0 Client、Resource Server、Authorization Server目前已经在Spring Security体系中模块化了。 那么它们是如何做到灵活的模块化的呢? 经过对配置的分析我发现了下面的几个相同点。 这是OAuth2.0 Client的核心配置类: public final class OAuth2ClientConfigure...