思有所皈,绪有所依

给万千思绪,寻一寄存之所

“手上过”是方言,跟那句“Talk is cheap. Show me the code.”的意思差不多。

本文尝试着用Spring Boot 3.0搭建了一个基本的单体应用,Spring Security结合Json Web Token进行用户认证和授权,Caffeine缓存结合OncePerRequestFilter过滤器来记录访问日志,另外统一了Controller的返回和全局异常处理,并给出了一些扩展点的思路。

希望在后续的学习中可以用这个项目来做验证和测试,也可以作为一些简单项目的脚手架,稍微扩展一下就可以把重点放在业务实现上。

已开源: GitHub-Practice Spring Boot 3.0-Single
上一篇: Spring Boot 3.0 手上过 - GraalVM原生镜像

阅读全文 »

“手上过”是方言,跟那句“Talk is cheap. Show me the code.”的意思差不多。

GraalVM Native Image,原生镜像是独立的可执行镜像,这个独立是指不需要JVM。原生镜像通常具有镜像文件小,启动速度快,内存占用少等特点。这几个特点刚好解决了大规模容器化部署和Serverless应用场景的分发效率、(冷启动)响应速度和资源消耗等问题。

本文使用start.spring.io创建了一个Spring Boot 3.0的项目,并使用GraalVM编译为原生镜像,从构建速度、镜像大小、启动速度和内存占用等方面,跟传统镜像进行了比较。

Spring官方文档: GraalVM Native Image Support

阅读全文 »

这几天稍微得闲,尝试把fron-zero-to-n这个项目的Spring Boot版本升级到2.7.8,JDK升级到17,为后续升级到Spring Booot 3.0做准备。

详细版本

依赖项 升级前的版本 升级后的版本
Spring Boot 2.6.2 2.7.8
Spring Cloud 2021.0.0 2021.0.5
Java 1.8 17

Spring Boot和Spring Cloud的版本对应关系,还是参考https://start.spring.io或者https://start.spring.io/actuator/info

阅读全文 »

版权申明

博客文章自带的版权申明,如果是发布在自建的网站上,司法采信的权重可能并不高,毕竟可以随意修改,只是一个防君子不防小人的措施。

电子签名

司法认可的结合时间戳的签名,有成本。比如密信提供的Adobe全球信任PDF签名证书,入门版是2元一次。联合信任时间戳服务中心的签名甚至需要10元一次。

“登报”申明

传统的方式,除了公证,就是登报申明,借助这个思路,我们可以考虑找一些第三方的网站来公开。如果证据链完备,司法也会认可。比如在Github上以开源的方式发布,或者在新浪微博上发布,或者在多个博客平台上发布,这样就类似登报申明了,可以证明在某个时间节点,你发布了什么内容。当然内容是否是原创,另说。

创建索引

对大表进行分表

查询时使用with进行预处理(select in with)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
), top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT region,
product,
SUM(quantity) AS product_units,
SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;

既然Spring Boot官方宣称3.0是未来10年的基石,那我们也有必要做一些储备和尝试。笔者用当前生产部署的一个项目,建立git分支进行升级测试,这里做一个记录,后续逐渐完善。

阅读全文 »

安装

官网下载IntelliJ IDEA 社区版

从Ultimate切换到Community

项目的运行可能会被标记为Unknown,没什么关系,在配置里删除掉,然后在要运行的Class文件上鼠标右键,重新运行即会自动创建

插件

grep console,定义控制台输出的日志样式。

Key Promoter X,在该使用快捷键的地方提醒你使用快捷键。

Alibaba Java Coding Guidelines,阿里巴巴代码规范约束插件,对代码规范等很有帮助,可以养成良好的代码规范,编程风格。

SonarLint,编写代码时修复错误和漏洞。

Json Helper,Json格式化插件。

AiXcoder Code Completer,代码智能提示(本来是搜索Codota,出来这个,还没测试效果)

Git Commit Template,提供了很好的 Git 格式化模版,规范Git提交。

Maven Helper,依赖分析工具。

SequenceDiagram,可以方便地可视化代码中的方法调用关系,以及方法之间的时序关系。

Statistic,统计代码量。

用Hexo写个人博客已经有一段时间了,但是一直没找到一个好的方式来发布到互联网上(既要省钱又要省事):

  1. 是否购买独立的域名?
  2. 是否购买有公网IP的主机来部署?

今天终于发布出来了,采用“阿里云域名 + Cloudflare Pages”的组合,首年只花9元的域名钱,后续也只是域名续费。

阅读全文 »
0%