编辑
2024-07-09
遇到的问题
00

告警

当我们给一个继承了父类的子类上使用@Data、@ToString、@EqualsAndHashCode 注解时,IDEA 会发出警告,大概内容如下:

Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add ‘(callSuper=false)’ to your type.

解决

在项目根目录下创建lombok.config文件

config
config.stopBubbling = true lombok.tostring.callsuper=CALL lombok.equalsandhashcode.callsuper=CALL lombok.accessors.chain=true
编辑
2024-07-09
前端
00

介绍

nvm是管理node的工具,支持多版本的切换使用,github官网

使用

卸载node.js

在系统设置中卸载原来node.js

下载nvm-windows

下载地址,选择nvm-setup.exe 一键安装

淘宝源设置

进入nvm安装目录找到settings文件,打开文件另起一行,粘贴内容

node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/

使用nvm安装node

在终端输入 nvm list available, 查看网络可以安装的版本

找到合适的版本之后输入

nvm install 20.12.2

等待下载完成后输入

nvm use 20.12.2

查看node版本和npm版本

输入node -v 和 npm -v

查看安装的node列表

nvm list
编辑
2024-07-08
实用工具
00

openjdk介绍

openjdk是开源的java开发工具,每个人都可以免费使用在任何地方

openJDK

下载地址 官方版本

zuluJDK

下载地址 Azul是全球最大的OpenJDK商业版提供商,其发行版100%基于Java的OpenJDK,并且提供了广泛的平台支持。

毕昇JDK

下载地址

BellSoft JDK

下载地址 由BellSoft生产的免费开源Java开发工具包,已经过TCK的Java SE规范验证,支持大多数操作系统,提供了比Oracle JDK更长久的技术支持和维护。

微软JDK

下载地址

阿里JDK

下载地址

eclipseJDK

下载地址 这个发行版是AdoptOpenJDK的继承者,由Eclipse基金会维护,得到了社区的广泛推荐,并且被许多大厂支持。它以稳定性和性能著称。

亚马逊JDK

下载地址 亚马逊提供的OpenJDK发行版,它提供长期支持,包括性能增强和安全修复。亚马逊在内部的数千种生产服务上运行Corretto,并且Corretto已被证明能够兼容Java SE标准。

腾讯JDK

下载地址

编辑
2024-07-08
实用工具
00

简介

MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。 新版本采用了AGPL v3.0许可,不可商业,除非开源自己的项目,最后一个使用Apache2.0版本的是RELEASE.2021-04-22T15-44-28Z

docker安装

拉取镜像

docker pull minio/minio

启动镜像

linux
docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin" -v /home/data:/data -v /home/config:/root/.minio minio/minio server --console-address ":9000" --address ":9001" /data

-p:9000是图形界面的端口,9001是API的端口,在使用SDK连接需要用到

MINIO_ACCESS_KEY:指定图形界面的用户名

MINIO_SECRET_KEY:指定图形界面的密码

如果修改了端口映射比如:-p 9900:9000,命令最后这句话是不用变化的还是-console-address ":9000" --address ":9001"

老版本部署

老版本部署比如RELEASE.2021-04-22T15-44-28Z 这是最后一个Apache2.0协议的版本,不用开源自己的代码。新版本使用了AGPLv3协议必须开源自己的代码才能免费使用。

mkdir -p /home/docker/minio/config mkdir -p /home/docker/minio/data
docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always \ -e "MINIO_ROOT_USER=minio" \ -e "MINIO_ROOT_PASSWORD=minio123456" \ -v /home/docker/minio/data:/data \ -v /home/docker/minio/config:/root/.minio \ minio/minio:RELEASE.2021-04-22T15-44-28Z server /data

启动

http:/ip:9000/login

获取accessKey和secretKey 选择create service account.

编辑
2024-07-05
学习记录
00

前提

业务需要,得获取大图的缩略图

代码

controller

java
@GetMapping("getThumbnail") @ApiOperation("获取缩略图") public void getThumbnail(String url, HttpServletResponse response){ try (OutputStream outputStream = response.getOutputStream()){ // 设置响应类型为JPEG图片 response.setContentType("image/jpeg"); // 防止中文乱码以及图片在浏览器中显示问题 response.setHeader("Content-Disposition", "inline; filename=image.jpg"); // 写入图片数据到输出流 ImageUtil.getImageStream(url,200,200).writeTo(outputStream); // 刷新缓冲区并结束响应 outputStream.flush(); }catch (IOException e){ throw new SystemException(500,"获取缩略图失败"); } }

ImageUtil

java
public static ByteArrayOutputStream getImageStream(String url,int width, int height) { ByteArrayOutputStream outputStream=null; // 打开URL连接 try (InputStream in = new URL(url).openStream()) { // 从输入流中读取原始图片 BufferedImage originalImage = ImageIO.read(in); // 创建一个新的缩放后的图片 BufferedImage resizedImage = new BufferedImage(width, height, originalImage.getType()); Graphics2D graphics2D = resizedImage.createGraphics(); graphics2D.drawImage(originalImage, 0, 0, width, height, null); graphics2D.dispose(); // 将缩放后的图片转换为字节数组 outputStream = new ByteArrayOutputStream(); ImageIO.write(resizedImage, "jpg", outputStream); } catch (Exception e) { e.printStackTrace(); log.error("获取图片失败:"+e.getMessage()); // 处理异常情况 } return outputStream; } ``

使用

bash
http://localhost:8888/dictimg/getThumbnail?url=http://www.baidu.com/image1.jpg