Jenkins安装和使用
macOS环境搭建Jenkins,以及Jenkins的一些常用配置和任务构建过程的示例。
年终总结-2024
2024年的年终总结,以及对2025年的规划。
Arthas常用命令
继上一次学习使用 Arthas 之后,今天特此学习了解下 Arthas 在项目中比较好用的几个命令。
记录一次在uni-app中使用echarts的坑
背景
在 uni-app 的内置组件和官方扩展组件中,是没有支持图表的组件的。通过内置组件-画布-canvas的页面内容,可以找到官方文档对图表使用的解释:
一开始准备直接尝试使用uChart的,看到微信扫一扫就劝退了。反正我只需要基础的图表功能,也不太在乎性能,再加上之前在Vue项目写过echarts代码,对echarts官方的文档说明比较了解,就选择了另一个插件:echarts 。
这个插件主要就是为了让 uni-app 能兼容echarts,所有图表相关语法都是直接用echarts的,所以上手就比较简单些。
开始使用
在插件文档的代码演示中,找到Vue3版本的示例代码,直接拷贝,运行项目,图表正常展示。
现在就是需要自定义自己的图表样式了,我做的图表是一个饼图,也没什么样式要求,整个option的结构定义如下:
1234567891011{ series: [{ type: 'pie', data: data, radius: '80%', label: { positio ...
RocketMQ 5.x在SpringBoot中的上手使用过程
在SpringBoot环境下原生态的集成使用RocketMQ的简易教程。
Fail2Ban使用心得
起因
最近租了两个“肉鸡”服务器用于个人开发学习,因为有公网暴露,频繁被机器人恶意登录,导致经常会出现如下提示:
1There were * failed login attempts since the last successful login.
通过修改 /etc/ssh/sshd_config 禁止root用户密码登录也拦不住,于是就找到一个第三方工具 - Fail2Ban。
介绍
Fail2Ban 是一个开源的入侵防御软件,主要用于防止恶意的暴力破解攻击。
它通过监控系统日志文件(例如 /var/log/auth.log、/var/log/apache2/error.log 等)中的可疑行为(如重复的登录失败、异常的 IP 请求等),根据预定义的规则识别出恶意行为,然后对恶意 IP 地址采取临时封禁措施。Fail2ban 主要通过修改防火墙规则来实现这一点。
安装
Linux下执行如下命令即可:
1yum install -y fail2ban
配置
Fail2Ban 有一个名为 jail.conf 的主(默认)配置文件,它可以与 jail.local 配置文件共存,jail ...
SpringBoot集成Redis使用心得
记录一下最近在从零搭建项目时集成Redis的使用心得,主要内容如下:
SpringBoot如何引入Redis;
SpringBoot引入Redis依赖后,为什么不能直接注入RedisTemplate;
SpringBoot中Redis的序列化方式;
自动装配默认使用的Redis客户端为什么是Lettuce;
SpringBoot如何引入Redis
首先,如果作为初次在SpringBoot项目中使用Redis的人,可以按照如下方法查找关于Redis的依赖包。
浏览器打开spring官网,找到SpringBoot项目。
点击当前版本(CURRENT)SpringBoot的参考资料(Reference Doc.)。
进入文档后,在搜索栏(Search)搜索Redis,一般第一个就是对应的文档目录。
根据文档内容,可以了解到SpringBoot提供了一个 spring-boot-starter-data-redis 依赖包用于管理SpringBoot中关于Redis的依赖配置。并且在文档中还有大致的使用说明和示例。
因此,要想使用Redis,只需要在SpringB ...
Java-“手撕”Class文件结构
前言
在上一章节 Java-JVM类文件结构 中描述了Class文件的组成,为了加深影响,这章将进行手动实践,编写一个Java示例文件,对编译生成后的Class文件进行一个一个字节的分析。
Java文件
以下是示例文件的Java代码:
123456789101112131415161718192021222324package com.itwray.study.advance.jvm;/** * 字节码分析类 * * @author wray * @since 2024/7/25 */public class Main { private int num; private static final String name = "wray"; public static void main(String[] args) { Main main = new Main(); main.num++; main.print(name + main.num); } privat ...
Java-JVM类文件结构
简介
在Java中,被 JVM 可以理解的代码称为字节码,即扩展名为 .class 的文件,这种文件被称为字节码文件,也可以称为类文件或者Class文件。
Java使用Java编译器(javac)可以将Java代码编译为字节码存储的Class文件,其他语言也可以使用自己的编译器将代码编译成Class文件,例如JRuby通过jrubyc编译器生成、Groovy通过groovyc编译器生成、Kotlin通过kotlinc编译器生成等。
编译生成后的Class文件被JVM虚拟机执行,不受操作系统平台影响,因此具有“一次编译,到处运行”的特性。
🔔温馨提示:本章内容偏硬核,基本就是一个硬背字典的概念,建议结合 “手撕”Class文件结构 一起阅读,边看边上手最好。
类文件结构
任何一个Class文件都对应着唯一的一个类或接口的定义信息,但是反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以动态生成,直接送入类加载器中)。
Class文件是一组紧凑排列的二进制流,,各个数据项目按照顺序排列,没有分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 ...
Java-JVM基础
前言
JVM是Java进阶之路中非常重要的一步,因此写下本文,用一篇文章对JVM知识点做一个总结。
JVM知识体系比较多,本文将采用“想到什么说什么“的思维编写,个人感觉这样更容易引发学习思考,面对有难度的知识点,可以由浅入深,一点点的了解。
最后,再大概了解完JVM的所有知识点后,再做一个核心知识点总结,用于整理归纳。
JVM是什么
首先,在听到一个新单词时,不禁会产生疑问,它是什么?所以JVM是什么呢?
JVM全名 Java Virtual Machine ,中文名 Java虚拟机。顾名思义,它是一个虚拟化的计算机。
Q:JVM作为虚拟化机器,能做什么呢?
它能执行Java字节码,将Java字节码翻译成机器代码,供操作系统执行,实现Java“一次编译,到处运行“的特性。
Q:出现了新单词 - Java字节码,什么是Java字节码呢?
Java字节码(Java Bytecode)是Java编程语言编译后生成的一种中间表示形式。它是与平台无关的二进制代码,JVM能够直接理解和执行它。反过来说,Java字节码需要JVM进行解释,才能够被机器直接执行。
Q:Java字节码是怎么产生的呢?
...