自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 泛型的实际应用和泛型的优势好处

Java泛型机制通过参数化类型实现代码复用和类型安全,解决了类型强制转换和代码重复问题。泛型广泛用于集合框架(如ArrayList<String>)和工具类设计,主要优势包括:1)编译期类型检查避免运行时异常;2)增强代码复用性;3)消除强制类型转换;4)提高代码可读性;5)虽存在类型擦除但减少了运行时开销。泛型使开发更安全高效,是Java重要特性之一。

2025-06-12 17:43:58 103

原创 spring参数校验规范 常用注解 使用方法 @valid和@validated区别

【参数校验注解使用指南】常用注解包括:@NotNull(校验非null)、@NotBlank(校验字符串非空)、@NotEmpty(校验集合/字符串非空)。@Valid用于Controller层校验实体类字段,而@Validated支持分组校验,可在Service层使用。使用步骤:1)添加spring-boot-starter-validation依赖;2)在Controller或Service层添加相应注解;3)在实体类字段上设置校验规则。两种方式均能有效验证参数合法性,开发者可根据场景选择注解组合实现精

2025-06-12 17:42:05 146

原创 Java项目集成logback

Logback是一个高性能的Java日志框架,由log4j创始人开发。它通过Logger、Appender和Layout/Encoder三大核心组件实现灵活的日志记录,支持控制台、文件等多种输出方式。配置采用XML格式,可定义日志级别(INFO/ERROR)、输出格式和滚动策略(按天归档)。示例配置展示了如何将不同级别日志分别输出到控制台和文件,并保留60天历史日志。Logback以其高性能、动态配置重载和与SLF4J的良好集成,成为现代Java项目的首选日志解决方案。

2025-06-11 19:48:17 610

原创 计算机语言不同输出数据不同

今天遇到一个很有意思的问题,同样的接口代码,在我本地上测试数据是中文,测试服务器上数据却是英文,检查了代码和数据库字段类型,都是一致的,这时候我们组的杨大佬开始检查计算机语言,因为我的日期转换是用的原生的,使用的计算机语言是中文就输出中文,使用的是英文就输出英文,结果就是我的电脑使用的计算机语言是中文,测试服务器上面使用的是英文,所以才会出现同样的代码却输出不同类型的数据。让我们使用它显示星期几。这是我的代码,逻辑就是将日期转换为星期几。这是测试服务器的计算机语言。这是我电脑的计算机语言。

2025-06-05 17:14:38 121

原创 SpringBoot集成Minio

本文介绍了在SpringBoot项目中集成Minio对象存储服务的步骤。首先通过Maven引入Minio依赖(8.5.10版本),然后在application.yml中配置Minio连接参数,包括endpoint、access-key、secret-key和bucket-name。接着创建MinioConfig配置类,编写Controller和Service实现文件上传功能,最后进行测试验证。整个过程还包括调整Tomcat文件大小限制配置,完成集成后可以成功使用Minio服务。

2025-06-04 10:51:05 175

原创 Minio下载教程

MinIO是一个高性能的开源对象存储系统,兼容S3协议,适合处理图片、视频等非结构化数据。本文介绍了Windows环境下安装MinIO的步骤

2025-05-28 15:08:13 623

原创 Jira联动Confluence使用教程

可以在Confluence中建一个空白页进行尝试,复制jira的链接以后它会将链接进行样式转换,一种是展示为链接,一种是链接名+当前问题的状态,一种是卡片,个人认为第二种就够用,如果说想将多个url添加进Confluence中,一个一个添加太慢,可以点击页面的+号,选择你想连接的项目,你也可以从Search处进行搜索,它是用sql语句进行搜索,列如project=EDUCATION,点击搜索再点击insert,它就会将这个项目所有的问题插入进来。创建空间后,根据项目需要,可以给空间设置权限。

2025-04-30 16:15:13 770

原创 Linux开放端口

sudo firewall-cmd --zone=public --add-port=你要开放的端口/tcp --permanent。sudo firewall-cmd --zone=public --add-port=你要开放的端口/tcp。添加一个永久规则来开放端口(即使重启后也有效)添加一个临时规则开放端口。

2024-08-28 10:29:26 418 1

原创 Spring的IOC

当Spring启动时,IOC容器会加载Spring的配置文件,包括XML配置或者注解,然后解析这些Bean并把相关定义信息封装成BeanDefinition对象,通过Bean注册器BeanDefinitionRegistry注册到IOC容器,也就是一个ConcurrentHashMap中。此时会找出所有的单例且非惰性加载的bean,根据其BeanDefinition进行Bean的实例化,它会判断如果bean中有方法覆盖,就使用JDK反射创建Bean,否则使用CGLIB方式生成代理。

2024-03-26 17:55:14 323

原创 Mysql主从复制

mysql主从复制

2024-03-08 19:31:49 569 1

转载 使用docker实现mysql 8.0主从复制

使用docker实现mysql 8.0主从复制转载以下。

2024-03-02 10:18:00 119

原创 使用docker实现mysql 8.0主从复制

mysql_native_password是因为在MySQL8.0之前,身份验证的插件是mysql_native_password,在MySQL 8.0中,caching_sha2_password 是默认的身份验证插件,安全性更高,如果不加的话有可能会报错,详情请参考该博客。如果都是Yes的话,那么恭喜你,可以测试主从复制的效果了,如果有一个不是Yes,一半是重启从容器后,事务回滚引起的,那么给出解决方法如下。修改slave里面的my.cnf,在 [mysqld] 节点最后加上后保存。

2024-03-02 10:17:08 1537

原创 Synchronized锁升级原理

轻量级锁:它是偏向锁升级来的,出现了锁竞争,就会升级成轻量级锁,抢到锁的线程进行正常操作,没有抢到的就会进行自旋,尝试获取锁。偏向锁:多数情况下不会出现锁竞争,由一个线程获取锁,然后把这个线程的id放到MarkWord中,第二次还是这个线程进来就不需要进行开锁和加锁,看起来就偏袒了它。每个对象都有对象头,对象头由MarkWord,指向类的指针,数组的长度组成,它的锁优化依赖于MarkWord中的锁标志位。重量级锁:当线程竞争比较激烈的时候,线程自旋次数到达10次(默认),就会升级成重量级锁。

2024-02-29 16:54:40 391

原创 Synchronized 原理

它是基于jvm的内置锁,jvm的内置锁又是基于内部对象监视器锁(),监视器锁基于操作系统的互斥锁()实现,它是一个重量级锁性能较低(

2024-02-29 16:35:53 110

原创 Synchronized的用法有哪些

修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;修饰一个非静态方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;修饰一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;

2024-02-28 20:09:56 141 1

原创 Java中有哪些锁

他们的区别在于:悲观锁是在业务一开始就加锁,业务处理完成之后,释放锁,拿Mysql来说单执行加了 for update 的查询语句时就加锁,业务处理完成,事务提交就释放锁。自旋锁(不阻塞):当一个线程尝试去获取某一把锁的时候,如果这个锁此时已经被别人获取(占用),那么此线程就无法获取到这把锁,该线程将会自旋,间隔一段时间后会再次尝试获取。阻塞锁:阻塞锁如其名,就是当拿不到这个数据的锁,当前线程就会阻塞,直到被唤醒,相当于暂停这个线程的工作,让这个线程不会占用CPU时间,但缺点是线程恢复速度要比。

2024-02-28 20:07:25 1792 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除