- 博客(27)
- 收藏
- 关注
原创 ✅Linux安装与连接
首先,我们要准备一个Linux的系统,成本最低的方式就是在本地安装一台虚拟机。首先建议设置一下默认编辑器,这样我们通过MobarXterm的FTP工具打开文件时会以指定的编辑器打开,方便修改。启动后需要选择安装菜单,将鼠标移入黑窗口中后,将无法再使用鼠标,需要按上下键选择菜单。过一会儿后,会进入语言选择菜单,这里可以使用鼠标选择。在虚拟机安装完成后,最好立刻设置一个快照,这样一旦将来虚拟机出现问题,可以快速恢复。Centos7是比较常用的一个Linux发行版本,在国内的使用比例还是比较高的。
2025-10-07 23:05:30
898
原创 ✅Spring中@NotEmpty、@NotBlank、@NotNull 区别和使用
NotNull适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)注:被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制适用于 String 类型的数据上,加了注解的参数不能为适用于等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0最上面三个注释: 必须需要搭配或者。
2025-10-07 23:01:41
597
原创 ✅Future、CompletableFuture 和 FutureTask
在现代软件开发中,处理并发任务是至关重要的。Future 是 Java 提供的一个接口,用于表示异步计算的结果。它允许我们在一个线程中提交一个任务,然后在另一个线程中获取任务的执行结果。虽然 Future 提供了一种简单的方式来进行异步编程,但它的功能有限,不能很好地处理复杂的并发场景。是 Java 8 引入的一个类,提供了更强大和灵活的异步编程功能。它允许我们链式地组合多个异步操作,处理异常情况,并在任务完成时执行特定的回调函数。的实现类来获取任务的执行结果,也可以作为线程执行的任务来执行异步操作。
2025-10-05 17:31:42
421
原创 ✅Java 面向对象进阶之多态:从概念到实践的深度解析
多态作为 Java 面向对象编程的重要特性,通过继承、方法重写和父类引用指向子类对象,实现了同一操作在不同对象上的多样化行为。它在提高代码的可维护性、扩展性,实现插件式架构以及简化代码逻辑等方面都发挥着重要作用。然而,在使用多态时,也需要注意访问权限、静态方法和构造方法等相关问题,避免出现错误。深入理解和熟练掌握多态,将有助于我们编写出更加健壮、灵活和高效的 Java 程序。希望本文的内容能够帮助大家更好地掌握 Java 面向对象进阶中的多态知识,并在实际开发中灵活运用。
2025-10-05 10:35:12
809
原创 ✅Java 一键将 Word 文档转为 PDF
本文介绍了两种Java实现Word转PDF的方法。方法一使用Apache POI和iText库,通过读取Word文档段落内容并转换为PDF格式实现转换;方法二采用Docx4J库,直接调用封装好的转换方法完成格式转换。两种方法均提供了完整的Maven依赖配置和代码示例,详细说明了关键步骤的实现逻辑,包括文件读取、格式转换和流关闭等操作。转换过程均包含异常处理机制,确保转换失败时能输出错误信息。
2025-10-04 17:44:12
399
原创 ✅阿里云-对象存储OSS-配置和使用(Java)
在写项目的时候,使用到了上传文件的一些功能,通过该方式可以提高文件的访问速率。也可以就将文件存储到数据库。这里只是做一个记录。创建RAM用户并授予对应的权限。
2025-10-04 13:13:30
1839
原创 ✅用 Java 轻松读取 Word 文档内容
XWPFDocument document = new XWPFDocument(fis):用 XWPFDocument 类创建文档对象,它专门处理 .docx 格式的文档。FileInputStream fis = new FileInputStream("example.docx"):创建文件输入流读取 example.docx 文件。通过两层循环,外层遍历文档里的每个段落,内层遍历段落里的每个文本运行对象,把文本内容添加到 StringBuilder 里,最后打印出来。
2025-10-03 23:00:17
424
原创 ✅EasyExcel
读Excel | Easy Excel 官网/*模拟操作数据库*/System.out.println(list.size()+"模拟操作数据库......");模拟写入操作// 每读一行数据,都会调用这个方法@Override// 将读取到的一行数据添加到集合// 判断是不是到达缓存量了// 操作数据库// 读完整个excel之后,会调用这个方法@Override// 操作数据库实现ReadListener接口/*
2025-10-03 22:25:14
558
原创 ✅Java分层开发必知:PO、BO、DTO、VO、POJO概念
定义:PO与数据库表结构一一对应,每个字段映射表中的一列,通常由ORM框架(如MyBatis、Hibernate)自动生成作用:用于数据持久化操作,如增删改查(CRUD),仅包含数据,不涉及业务逻辑MyBatis示例@Id// 其他字段...合理使用VO、DTO、PO和BO等对象能有效实现解耦、提高灵活性和安全性。VO保护敏感数据,DTO适配不同接口需求,PO确保数据持久化准确,BO封装复杂业务逻辑。在开发中,根据项目复杂度选择合适的对象类型,并统一团队规范,提升代码可读性和可维护性。
2025-10-02 16:40:33
838
原创 ✅设计模式笔记
在静态代理中,代理类是定义好的,在程序运行之前就已经编译完成。而在动态代理中,代理类是在运行时根据代码中的指示动态生成的。与静态代理相比, 动态代理的优势在于可以很方便的对代理类的方法进行统一处理,而不用修改每个代理类中的方法。在java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过这个类和这个接口可以生成JDK动态代理类和动态代理对象。
2025-10-02 16:02:01
1716
原创 ✅Java 注解篇:@PostConstruct
PostConstruct 是 Java 中非常实用的注解,尤其是在 Spring 等框架中,它使得开发者可以方便地在 Bean 初始化后执行额外的操作。合理使用 @PostConstruct 可以帮助开发者更好地管理 Bean 生命周期、提高代码的可维护性和清晰度。
2025-10-01 19:36:58
673
原创 ✅黑马商城(持续更新中)
在演示UpdateWrapper的案例中,我们在代码中编写了更新的SQL语句:这种写法在某些企业也是不允许的,因为SQL语句最好都维护在持久层,而不是业务层。就当前案例来说,由于条件是in语句,只能将SQL写在Mapper.xml文件,利用foreach来生成动态SQL。这实在是太麻烦了。假如查询条件更复杂,动态SQL的编写也会更加复杂。所以,MybatisPlus提供了自定义SQL功能,可以让我们利用Wrapper生成查询条件,再结合Mapper.xml编写SQL基本用法@Test。
2025-10-01 19:35:13
1347
原创 MyBatis-Plus快速入门指南(尚硅谷)
程序抛出异常,Table 'mybatis_plus.user' doesn't exist,因为现在的表名为t_user,而默认操作的表名和实体类型的类名一致,即user表。首先是一个符号位,1bit标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负。经过以上的测试,MyBatis-Plus在实现CRUD时,会默认将id作为主键列,并在插入数据时,默认。经过以上的测试,在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在。
2025-09-30 11:24:43
1498
原创 苍穹外卖笔记
*** 业务异常*/super(msg);/*** 登录失败*/super(msg);/*** 全局异常处理器,处理项目中抛出的业务异常*/@Slf4j/*** 捕获业务异常* @return*/log.error("异常信息:{}", ex.getMessage());/*** 处理SQL异常* @return*/}else{
2025-09-29 23:15:24
1206
原创 ✅Elasticsearch
The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2025-09-28 12:04:33
268
原创 RabbitMQ
要点1:把消息确认模式改为手动确认要点2:调用Channel对象的方法返回信息ACK:Acknowledgement,表示消息处理成功NACK:Negative Acknowledgement,表示消息处理失败Reject:拒绝,同样表示消息处理失败要点3:后续操作requeue为true:重新放回队列,重新投递,再次尝试requeue为false:不放回队列,不重新投递要点4:deliveryTag 消息的唯一标识,查找具体某一条消息的依据延迟极限:最多两天。
2025-09-28 00:02:45
529
原创 MySQL运维篇
二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。作用:①. 灾难时的数据恢复;②. MySQL的主从复制。在MySQL8版本中,默认二进制日志是开启着。
2025-09-27 17:44:17
890
原创 力扣Hot100
步骤方向收缩哪边怎么收缩1左→右(上边)上墙++u2上→下(右边)右墙--r3右→左(下边)下墙--d4下→上(左边)左墙++l每走完一步,就收缩对应的墙,然后判断是否“墙撞墙”了(比如上墙穿过下墙),如果撞了就结束。
2025-09-27 16:36:04
771
原创 黑马八股文(图文+代码)
本文主要探讨了Spring框架和Redis的相关技术问题。在Spring方面,讨论了单例Bean的线程安全性、AOP实现原理、事务管理机制、循环依赖解决方案以及Spring MVC执行流程等内容。在Redis方面,分析了缓存穿透/击穿/雪崩的解决方案、持久化机制、数据淘汰策略、分布式锁实现以及高可用集群架构等。此外,还涵盖了MySQL索引优化、事务隔离级别、主从同步原理以及分库分表实践。文章最后简要介绍了微服务架构中的服务注册发现、负载均衡、限流策略和分布式事务解决方案。这些技术点对构建高性能、高可用的分布
2025-09-26 16:38:38
2092
原创 Redis学习之路
RedisTemplate可以接收任意Object作为值写入Redis:只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化,得到的结果是这样的:可读性差内存占用较大--redis依赖-->--Jackson依赖--spring-boot-starter-web中有>@Bean// 创建RedisTemplate对象// 设置连接工厂// 创建JSON序列化工具// 设置Key的序列化// 设置Value的序列化// 返回。
2025-07-04 11:17:10
1611
原创 MySQL进阶篇
大家可能没有听说过存储引擎,但是一定听过引擎这个词,引擎就是发动机,是一个机器的核心组件。比如,对于舰载机、直升机、火箭来说,他们都有各自的引擎,是他们最为核心的组件。而我们在选择引擎的时候,需要在合适的场景,选择合适的存储引擎,就像在直升机上,我们不能选择舰载机的引擎一样。而对于存储引擎,也是一样,他是mysql数据库的核心,我们也需要在合适的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是。
2025-07-04 09:00:41
1513
原创 MySQL基础篇
在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。1.1 数据库相关概念在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQLOracle:大型的收费数据库,Oracle公司产品,价格昂贵。MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。
2025-07-04 08:50:48
1446
原创 Circular placeholder reference ‘sky.alioss.access-key-id‘ in property definitions
Circular placeholder reference 'sky.alioss.access-key-id' in property definitions
2024-10-23 16:18:22
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅