自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot开发中常用的注解详解

在Spring Boot开发中,注解是非常重要的组成部分,它们简化了开发过程,提高了代码的可读性和可维护性。

2023-08-07 16:01:14 119

原创 死锁:多线程编程中的隐患与解决方案

死锁是指两个或多个线程彼此持有对方所需的资源,并且在等待对方释放资源时陷入无限循环的状态,导致所有线程无法继续执行。死锁通常发生在并发环境中,涉及多个线程同时访问共享资源。互斥条件:每个资源只能被一个线程占用。请求与保持条件:线程已经持有至少一个资源,并且在请求新的资源。不可剥夺条件:线程已经获得的资源在未经其允许的情况下不能被其他线程强行抢占。循环等待条件:多个线程形成一个环路,每个线程都在等待下一个线程所持有的资源。

2023-08-05 14:09:32 124

原创 Java线程中sleep()和wait()的区别

在多线程编程中,理解这两个方法的区别和正确使用它们是保证线程安全和正确同步的关键。都是用于线程间的控制和同步,但它们的用途和行为有很大的区别。

2023-08-05 13:52:38 283

原创 Java线程状态

Java线程可以处于不同的状态,每种状态表示线程的不同行为和状态。Java线程状态由Thread类中的枚举类型来表示。NEW(新建):线程刚被创建,但尚未启动。RUNNABLE(可运行):线程可以在Java虚拟机中执行,可能正在执行,也可能在等待调度运行。BLOCKED(阻塞):线程被阻塞,通常是因为它正在等待一个监视器锁(synchronized关键字)。WAITING(等待):线程在等待另一个线程采取特定操作。它会一直等待,直到其他线程显式地唤醒它。

2023-08-05 13:44:57 82

原创 数据库不同索引类型的异同点

聚集索引决定了表中数据的物理排序,一个表只能有一个聚集索引,而非聚集索引在单独的结构中保存索引并指向实际数据的位置。有些索引类型只能单独使用(如主键索引),而有些可以与其他索引类型一起使用(如唯一索引和非聚集索引)。数据更新性能:指该类型索引在数据插入、更新和删除时的性能表现。聚集索引通常是最快的,而其他索引性能根据查询条件的复杂性和数据分布情况而异。不同类型索引适用于不同的查询和数据需求,根据具体情况选择合适的索引类型。主键索引和唯一索引都要求索引列的值是唯一的,而其他类型索引不要求唯一性。

2023-08-04 19:18:30 92

原创 Tomcat在Spring Boot企业级项目中的配置最佳实践

Tomcat是Java世界中最流行的Servlet容器之一,而在Spring Boot企业级项目中,它担当着处理HTTP请求和响应的重要角色。在这篇博客中,我们将探讨如何在Spring Boot项目中配置Tomcat的最佳实践,以优化性能、确保安全性,并提高应用程序的可靠性。我们将为每个配置选项给出一个简单的示例代码,展示如何在或文件中实现该配置。我们还将为每个配置选项给出一些最佳实践和建议,帮助您优化您的Tomcat环境。

2023-07-25 14:11:20 446

原创 MySQL-日志类型

MySQL是一个开源的关系型数据库管理系统,它提供了多种日志文件来记录数据库的活动和状态,以便于监控、调优、备份和恢复等操作。

2023-07-25 13:18:26 72

原创 MySQL-binlog日志类型及比较

MySQL的二进制日志(binlog)是一种记录数据库所有修改操作的日志文件,它可以用于数据恢复、复制和审计等场景。binlog有三种不同的格式,分别是Statement、Row和Mixed,它们各有优缺点,适用于不同的需求。

2023-07-25 13:10:30 71

原创 数据库事务的ACID是什么意思

事务中的所有操作要么全部提交,要么全部回滚,确保数据库从一个一致的状态转变到另一个一致的状态。事务开始和结束时,数据库必须满足所有的完整性约束,即事务执行的结果必须使数据库从一个有效状态转变到另一个有效状态。隔离性(Isolation):并发执行的多个事务之间应该相互隔离,每个事务都应该感知不受其他事务影响的中间状态。隔离性确保每个事务的执行独立,互不干扰。持久性(Durability):一旦事务提交,其结果应该是永久性的,即使发生系统故障或重启,数据库系统也能够将事务的结果恢复到永久性的状态。

2023-07-19 13:31:54 248 1

翻译 ChatGPT-Prompt

【代码】ChatGPT-Prompt。

2023-07-09 16:29:30 1035 1

原创 Ant风格的路径模式

当谈到路径匹配和模式解析时,Ant 风格的路径模式是一种常用且强大的技术。在本博客文章中,我们将探讨 Ant 风格的路径模式的基本语法和用法,并展示它在实际开发中的应用。

2023-07-02 17:53:07 544 1

原创 正向代理、反向代理

正向代理是指客户端通过代理服务器来访问目标服务器,目标服务器不知道真正的客户端是谁,只知道请求来自于代理服务器。正向代理可以隐藏客户端的真实身份,让客户端访问一些原本无法访问的资源,比如Google、YouTube等。

2023-07-01 12:05:08 324

原创 跨域访问(CORS与代理)

CORS和代理都是解决跨域问题的常用方法,但是它们也有各自的优缺点。CORS是一种更简单和安全的方法,但是它需要服务器端的支持和配置。代理是一种更灵活和强大的方法,但是它需要额外的网络开销和中间层的维护。

2023-07-01 11:36:22 1136

原创 MapStruct:Java Bean映射的简单之道

MapStruct是一个代码生成器,它可以根据约定优于配置的原则,大大简化Java Bean类型之间的映射实现。生成的映射代码使用普通的方法调用,因此速度快、类型安全、易于理解。MapStruct是一个优秀的Java Bean映射框架,它可以帮助我们简化映射代码的编写和维护,提高性能和可读性。如果你还没有使用过MapStruct,不妨试试看,相信你会喜欢上它的。

2023-06-25 15:11:32 359

原创 Linux常用命令

cdcd [目录名]cd /home..lsls -l /etc-a-l-h-r-S-tmkdirmkdir test-p-m-m 755rm-i-f-rcp-i-f-r-pmv-i-f。

2023-06-24 11:36:44 163 1

原创 RBAC权限管理

我希望这篇博客能够对你有所帮助,也欢迎你在评论区留下你的意见和建议。祝你端午节快乐!

2023-06-22 15:27:21 1345 1

原创 什么是熔断\降级

熔断降级的目的是为了保护系统的稳定性和可用性,防止故障扩散和蔓延,提高用户体验和信任度。(4) 熔断和降级的真实关系,图文并茂,看完秒懂 - CSDN博客. https://blog.csdn.net/qq_27184497/article/details/119993725.(5) 谈谈熔断与降级 - 简书. https://www.jianshu.com/p/8a315baa78f1.(1) 熔断降级 - 简书. https://www.jianshu.com/p/ee6b16d1b5ab.

2023-06-15 11:19:25 685

原创 编程模型、编程框架、编程脚手架的关系与区别

编程模型是最外层的概念,它包含了编程框架和公共服务和能力服务。编程框架是中间层的概念,它包含了通用业务能力和组件和工具。编程脚手架是最内层的概念,它包含了项目结构和基础配置和命令和功能。希望本文能够帮助你更好地理解这三者之间的异同,并且在实际开发中能够根据不同的需求和场景,选择合适的编程模型、编程框架、编程脚手架来提高开发效率和质量。如果你觉得本文有用,请给我一个赞或者留言吧!

2023-06-06 11:29:46 446 1

原创 Hypermedia模型是什么,举个栗子

首先,你需要确定数据结构模型,即你的应用中有哪些类型的资源,它们有哪些属性,以及它们如何存储和表示。最后,你需要确定组合模型,即你的应用中有哪些页面或者视图,它们包含哪些资源和链接,以及它们如何呈现和交互。假设你想要创建一个超媒体应用,它可以让用户浏览和购买不同的电影。通过使用Hypermedia模型来设计超媒体应用,你可以更清晰地分析和规划你的应用的结构和行为,也可以更容易地修改或扩展你的应用。其次,你需要确定过程模型,即你的应用中有哪些类型的链接,它们有哪些关系,以及它们如何导航和操作。

2023-06-04 19:26:46 44 1

原创 什么是NIO,什么是Netty

本文简单介绍了NIO和Netty的概念、特点和区别,并给出了一些示例和插图。希望对你有所帮助。

2023-06-04 19:22:54 659 1

原创 Ceph:一个统一的分布式存储系统

Ceph是一个开源的分布式存储系统,它可以提供对象存储、块存储和文件存储三种接口,满足不同场景的数据存储需求。Ceph的设计目标是提供高性能、高可用性和高可扩展性,以及简化的管理和维护。¹²Ceph的核心组件是RADOS(Reliable Autonomic Distributed Object Store),它是一个基于对象的存储集群,负责数据的分布、复制、恢复和平衡。

2023-06-04 11:55:55 295 1

原创 Seata:一个简单易用的分布式事务解决方案

Seata是一个简单易用的分布式事务解决方案,它可以帮助开发者在微服务架构下实现数据一致性,提高系统的可靠性和稳定性。Seata目前已经有很多知名的企业在使用,如阿里巴巴、蚂蚁金服、美团、京东、滴滴等。

2023-06-04 10:50:21 227 1

原创 Seata四种事务模式介绍+示例代码

Seata是一款支持多种分布式事务模式的框架,它可以根据不同的业务场景和需求,选择合适的模式来实现数据的一致性。Seata的四种模式各有优缺点,需要根据具体情况进行权衡和选择。模式一致性可用性侵入性复杂度XA强低低高AT最终高低中TCC最终高高高SAGA最终高高中Seata官方网站:https://seata.io/Seata官方文档:https://seata.io/en-us/docs/overview/what-is-seata.html。

2023-06-04 10:46:04 3112 1

原创 Hypermedia模型是什么

首先,您需要确定数据结构模型,即您的应用中有哪些类型的资源,它们有哪些属性,以及它们如何存储和表示。最后,您需要确定组合模型,即您的应用中有哪些页面或者视图,它们包含哪些资源和链接,以及它们如何呈现和交互。假设您想要创建一个超媒体应用,它可以让用户浏览和购买不同的电影。通过使用Hypermedia模型来设计超媒体应用,您可以更清晰地分析和规划您的应用的结构和行为,也可以更容易地修改或扩展您的应用。其次,您需要确定过程模型,即您的应用中有哪些类型的链接,它们有哪些关系,以及它们如何导航和操作。

2023-06-04 09:42:53 48 1

原创 分层领域模型规范约束

分层领域模型规范约束DO(Data Object) :此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。BO(Business Object) :业务对象,由 Service 层输出的封装业务逻辑的对象。AO(Application Object) :应用对象,在 Web 层与 Service 层之间抽象的复用对 象模型,极为贴近展示层,复用度不高。VO(View Object) :显示层对象,通常是 Web 向模板渲染引擎层传输的对象。Query :数据查询对象,各层接收上层的

2023-06-03 22:52:44 66

原创 JPA与MyBatis的区别

JPA和MyBatis是两种不同的Java持久层框架,它们有各自的特点、优缺点和适用场景。简单地说,JPA是一种对象关系映射(ORM)的规范,它提供了一种将Java对象和数据库表之间的映射关系的抽象层,让开发者可以使用面向对象的方式来操作数据库,而不需要直接编写SQL语句²。MyBatis是一种数据映射器(Data Mapper)的框架,它允许开发者直接编写SQL语句,并将其与Java对象和方法绑定,让开发者可以更灵活地控制数据库的访问和操作³。

2023-06-03 22:49:47 2998

原创 负载均衡与高可用三剑客(LVS+NGINX+KEEPALIVED)

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:The Linux Virtual Server Project¹。LVS的目标是通过Linux操作系统和负载均衡技术,实现一个高性能,高可用,高可扩展的服务器集群系统²。LVS的体系架构由三个部分组成:最前端的负载均衡层(Load Balancer),中间的服务器群组层(Server Array),最底层的数据共享存储层(Shared Storage)²。

2023-06-03 22:43:03 1399

空空如也

空空如也

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

TA关注的人

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