自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二.微服务架构中的精妙设计:环境和工程搭建

微服务到底多⼩才算"微", 这个在业界并没有明确的标准. 微服务并不是越⼩越好, 服务越⼩, 微服务架构的优点和缺点都会越来越明显.服务越⼩, 微服务的独⽴性就会越来越⾼, 但同时, 微服务的数量也会越多, 管理这些微服务的难度也会提⾼. 所以服务拆分也要考虑场景

2025-03-30 23:09:00 995 1

原创 三.微服务架构中的精妙设计:服务注册/服务发现-Eureka

在最初的架构体系中, 集群的概念还不那么流⾏, 且机器数量也⽐较少, 此时直接使⽤DNS+Nginx就可以满⾜⼏乎所有服务的发现. 相关的注册信息直接配置在Nginx. 但是随着微服务的流⾏与流量的激增,机器规模逐渐变⼤, 并且机器会有频繁的上下线⾏为, 这种时候需要运维⼿动地去维护这个配置信息是⼀个很⿇烦的操作.所以开发者们开始希望有这么一个东西, 它能维护⼀个服务列表, 哪个机器上线了,哪个机器宕机了, 这些信息都会自动更新到服务列表上, 客户端拿到这个列表, 直接进行服务调用即可. 这个就是注册中心。

2025-03-30 23:07:37 1559

原创 一.微服务架构中的精妙设计:SpringCloud的概述

微服务解决⽅案- Spring Cloud。

2025-03-29 18:44:42 701

原创 位运算算法:解锁高效编程的钥匙

位运算是直接对整数在二进制位上进行操作的运算,主要包括以下几种:按位与(&)运算规则:将两个数转换为二进制后,对应位都为 1 时,结果位才为 1,否则为 0 。例如,3 & 5 ,3 的二进制是 0011,5 的二进制是 0101 ,则 0011 & 0101 = 0001(即十进制的 1 )。应用场景:常用于获取某数二进制特定位置的值,如 num & 1 可判断 num 二进制最低位是否为 1;还可用于屏蔽某些位,保留其他位等

2025-03-28 14:09:48 557

原创 前缀和算法:解锁高效编程的钥匙

题目要求题目分析: 算法分析:前缀和算法:快速求出数组中某一段连续区间的和。 代码步骤:(1)输入数据从标准输入读取两个整数 和 : 表示数组的长度。 表示查询的次数。读取数组 ,注意数组下标从 开始。(2)前缀和数组创建一个前缀和数组 ,其中 表示数组 中前 个元素的和。前缀和的计算公式: (3)查询处理对于每个查询,输入区间的左右边界 和 。细节补充:设置前缀和数组时,定义第一个元素的下标为1,不是0,这样的目的是解决边界问题。源代码:代码通过:题目要求:题目解析:

2025-02-26 10:50:43 931

原创 双指针算法:解锁高效编程的钥匙

做题策略:1.定义两个指针(其实本质是两个索引),cur指针(初始位置为0)和dest指针(初始位置为-1)2.cur从后往前遍历数组3.cur遍历完整个数组即完成。视频展示如下:(1)283移动零算法小结:根据双指针移动的方法,可以将数组进行块划分,可以分成三个区间。

2025-02-24 16:56:19 823

原创 滑动窗口算法:解锁高效编程的钥匙

在比较种类的时候,我们可以直接用hash容器进行比较(循环),但是可以进行优化,使用数组模拟hash表,同时用变量存储种类,大大滴优化✌。将 x 减到 0 的最小操作数。源码:(使用hash容器)找到字符串中所有字母异位词。最大连续1的个数 III。无重复字符的最长子串。

2025-02-24 16:55:41 398

原创 从初学者到专家:Java继承的完整指南

Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑通过观察上述代码会发现,猫和狗的类中存在那能否将这些共性抽取呢?。

2025-02-05 11:00:49 832

原创 二分算法模板:解锁高效编程的钥匙

数组具有二段性,可以分为左右两边合法区和不合法区如果选择左端点,右边区域不合法,选择 left = mid ,;如果选择右端点,左边区域不合法,

2025-02-02 15:03:28 473

原创 在排序数组中查找元素的第一个和最后一个位置(力扣)

使用二分进行查找。

2025-01-30 18:13:38 1085

原创 简单配置阿里云服务器编写Linux

先说环境,为了分工明确,不同工作人员涉及到的"环境"不同。开发环境: 开发⼈员写代码⽤的机器.测试环境: 测试⼈员测试程序使⽤的机器.⽣产环境(线上环境): 最终项⽬发布时所使⽤的机器. 对稳定性要求很⾼把程序安装到⽣产环境上, 这个过程称为 "部署". 也叫 "上线".

2025-01-08 11:08:19 1063

原创 Spring项目:文字花园(四)

接下来我们介绍第三种⽅案: 令牌技术 JWT令牌⽣成和校验。1.在pom文件,引入依赖 2.生成令牌(utils/JwsUtils)代码: 3.编写后端接口(User Controller) service层:mapper层:4.编写前端代码进行交互: 展示成功 . 新添类:interceptor/LoginInterceptor 代码: 1.2应用到项目1.新添类:config/webconfig2. 编写前端代码(blog_list.html)

2024-08-20 23:03:41 954 4

原创 Spring项目:文字花园(三)

controller层添加方法(根据博客id查看博客详情)Service层写构造方法使用postman来进行测试测试成功。

2024-08-19 22:01:18 512

原创 Spring由于后端逻辑,前端无法展示数据

前端需要发送请求,获取到getList方法,但是后端返回的是一个List类,而不是Result类,导致找不到SUCCESS,根本没有执行if语句内容,自然就没有展示到到前端。或者在前端代码,在if条件把SUCCESS状态码去掉,直接使用List对象。后端逻辑:在ctroller层,调用getList方法返回的是List列表。状态码SUCCESS返回result类。把返回的类型修改成Result。前端代码,if条件里面是。来进行数据展示更新。

2024-08-19 18:09:52 636

原创 Spring项目:文字花园(一)

实现登录注册功能。⽤⼾登录成功后, 可以查看所有⼈的博客. 点击 可以查看该博客的正⽂内容. 如果该博客 作者为当前登录⽤⼾, 可以完成博客的修改和删除操作, 以及发表新博客。

2024-08-12 21:35:11 969

原创 Spring项目:文字花园(二)

这段代码使用MyBatis注解方式定义了一个名为和selectById,分别用于根据用户名和用户ID从数据库中查询用户信息,并返回UserInfo对象。单元测试:代码解读:用于测试接口中的和selectById方法,通过自动注入实例并调用其方法来验证数据库查询功能的正确性,测试结果通过控制台输出显示。

2024-08-12 21:22:45 817

原创 事务隔离级别

Spring 事务传播机制我们回顾一下MySQL 事务隔离级别.SQL 标准定义了四种隔离级别, MySQL 全都⽀持. 这四种隔离级别分别是:1.: 读未提交, 也叫未提交读. 该隔离级别的事务可以看到其他事务中未提交的数据.读已提交, 也叫提交读. 该隔离级别的事务能读取到已经提交事务的数据,该隔离级别不会有脏读的问题.但由于在事务的执⾏中可以读取到其他事务提交的结果, 所以在不同时间的相同 SQL 查询可能会得到不同的结果, 这种现象叫做不可重复读3.

2024-08-11 21:41:16 2023

原创 【无标题】

然而,也需要注意,由于事务管理是通过代理实现的,因此有些情况下(如类内部的方法调用)可能无法触发事务管理逻辑。⽆需⼿动开启事务和提交事务, 进⼊⽅法时⾃动开启事务, ⽅法执⾏完会⾃动提交事务, 如果中途发⽣了没有处理的异常会⾃动回滚事务.注解的类或方法时,Spring 会为这个类或方法创建一个代理对象,并在代理对象中嵌入事务管理的逻辑。方法进行用户注册,如果注册成功则提交事务,如果在注册过程中遇到异常则回滚事务。属性定义了事务的传播行为,即当前事务方法应该如何与存在的事务进行交互。

2024-08-11 21:17:36 677

原创 Spring事务

事务的定义:事务是⼀组操作的集合, 是⼀个不可分割的操作.事务会把所有的操作作为⼀个整体, ⼀起向数据库提交或者是撤销操作请求.所以这组操作要么同时成功, 要么同时失败.事务的特性(ACID)原子性:事务中的所有操作作为一个整体执行,它们要么全部成功,要么全部失败回滚。一致性:事务执行前后,数据库必须从一个一致性状态转变到另一个一致性状态。隔离性:并发执行的事务之间应该相互隔离,避免数据冲突和不一致性。持久性:一旦事务提交,其对数据库的修改就是永久性的,即使在系统故障后也能够恢复。

2024-08-09 18:36:27 1255

原创 Spring AOP 源码剖析

Spring AOP通过动态代理技术提供了一种灵活的方式来增强现有方法的功能,而无需修改源代码。其源码实现涉及Bean生命周期管理、动态代理技术、责任链模式等多个方面,深入理解这些机制有助于更好地使用和维护Spring AOP。

2024-08-08 21:51:04 1306

原创 深入探索String AOP想详情

AOP是Spring框架的第⼆⼤核⼼(第⼀⼤核⼼是IoC)Q:什么是AOP?A:Aspect Oriented Programming(⾯向切⾯编程)什么是⾯向切⾯编程呢?切⾯就是指某⼀类特定问题, 所以AOP也可以理解为⾯向特定⽅法编程. 什么是⾯向特定⽅法编程呢?

2024-08-08 20:58:33 690

原创 深入探索String AOP:切点表达式

创建⼀个注解类(和创建Class⽂件⼀样的流程, 选择Annotation就可以了)代码简单说明, 了解即可. 不做过多解释1.@Target 标识了 Annotation 所修饰的对象范围, 即该注解可以⽤在什么地⽅.TYPE: ⽤于描述类、接⼝(包括注解类型) 或enum声明ElementType.METHOD: 描述⽅法ElementType.PARAMETER: 描述参数TYPE_USE: 可以标注任意类型。

2024-08-08 20:53:31 846

原创 DispatcherServlet 源码分析

当Tomcat启动之后, 有⼀个核⼼的类DispatcherServlet, 它来控制程序的执⾏顺序.所有请求都会先进到DispatcherServlet,执⾏doDispatch 调度⽅法. 如果有拦截器, 会先执⾏拦截器 preHandle() ⽅法的代码, 如果 preHandle() 返回true, 继续访问controller中的⽅法. controller当中的⽅法执⾏完毕后,再回过来执⾏ postHandle() 和 afterCompletion() ,返回给DispatcherServle

2024-08-06 22:39:33 1102

原创 Spring Boot实战:拦截器

什么是拦截器:拦截器在SpringBoot中主要有以下几个作用: 1.2拦截器的基本使用1.⾃定义拦截器:实现HandlerInterceptor接⼝,并重写其所有⽅法 2.注册配置拦截器:实现WebMvcConfigurer接⼝,并重写addInterceptors⽅法 3.启动服务, 试试访问任意请求, 观察后端⽇志可以看到preHandle ⽅法执⾏之后就放⾏了, 开始执⾏⽬标⽅法, ⽬标⽅法执⾏完成之后执⾏ postHandle和afterCompletion⽅法.

2024-08-06 11:03:11 6209

原创 Mybatis实战:图书管理系统(笔记)

数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚⾄决定我们的实现⽅式. 如何设计表以及这些表有哪些字段, 这些表存在哪些关系 也是⾮常重要的.分析我们的需求, 图书管理系统相对来说⽐较简单, 只有两个实体: ⽤⼾和图书, 并且⽤⼾和图书之间没有关联关系表的具体字段设计, 也与需求有关.数据库表设计是依据业务需求来设计的. 如何设计出优秀的数据库表, 与经验有很⼤关系.2.在controller层写后端(UserController)逻辑。

2024-08-04 21:57:43 577

原创 Mybatis实战:#{} 和 ${}的使用区别和数据库连接池

{} 和 ${}#{} 和 ${} 在MyBatis框架中都是用于SQL语句中参数替换的标记,但它们在使用方式和处理参数值上存在一些显著的区别。特点1.1Interger类型的参数1.先看Interger类型的参数2.观察日志3.查看日志中的输出语句我们输⼊的参数并没有在后⾯拼接,id的值是使⽤?进⾏占位. 这种SQL 我们称之为"预编译SQL"。4.我们把#{}改成${}5.再次查看输出日志信息可以看到, 这次的参数是直接拼接在SQL语句中了。

2024-08-02 16:18:07 2017

原创 MyBatis开发: XML配置⽂件

在MyBatis中,XML配置文件扮演着至关重要的角色,它们定义了数据库操作的行为和规则。接下来,我将用通俗的例子来解释这些配置文件的概念和功能。1. XML配置文件的概念XML配置文件是一种使用XML语言编写的文件,它们包含了MyBatis框架运行所需的配置信息。MyBatis通过解析这些XML文件来获取数据库连接信息、SQL语句、映射关系等,从而实现对数据库的操作。

2024-08-01 21:44:36 3041 1

原创 MyBatis开发:使用注解

一.什么是MyBatis?在应⽤分层学习时, 我们了解到web应⽤程序⼀般分为三层,即:Controller、Service、Dao .之前的案例中,请求流程如下: 浏览器发起请求, 先请求Controller, Controller接收到请求之后, 调⽤Service进⾏业务逻辑处理, Service再调⽤Dao, 但是Dao层的数据是Mock的, 真实的数据应该从数据库中读取。我们学习MySQL数据库时,已经学习了JDBC来操作数据库, 但是JDBC操作太复杂了,所以我们学习使用MyBatis。

2024-08-01 21:44:10 1118

原创 Spring Boot的配置

在application.properties修改端口号:二.配置⽂件的格式Spring Boot 配置⽂件有以下三种:yml 为yaml的简写, 实际开发中出现频率最⾼这里只讲yml和properties。

2024-07-31 21:05:17 2370

原创 Spring IoC & DI(笔记)

什么是容器?生活中的水杯,垃圾桶,冰箱等等这些都是容器,我们接触的容器有哪些?List/Map->数据存储容器Tomcat-> Web 容器。什么是IoC?IoC是Spring的核⼼思想,其实IoC我们在前⾯已经使⽤了,我们在前⾯讲到,在类上⾯添加@RestController和@Controller 注解。就是把这个对象交给Spring管理,Spring框架启动时就会加载该类.把对象交给Spring管理,就是IoC思想.

2024-07-30 19:40:03 991

原创 Spring验证码

1.什么是Hutool?2.代码复制到test类中3.代码爆红,说明需要引入依赖4.根据名取Maven仓库相关依赖5.在pom.xml文件中进行配置6.引入成功7. 运行程序打开d盘,发现已经生成了验证码的图片,路径在上面提示有。使用其他验证码的方式相同,不赘述。

2024-07-30 19:29:00 549

原创 Spring Boot:图书管理系统(一)

5. 编写用户登录的前端代码(主要看AJAX)4.打开postman测试后端接口。7.编写图书列表的前端代码。2.编写图书列表接口。3.编写图书列表接口。1.编写用户登录接口。3.编写图书列表接口。

2024-07-26 22:22:42 584

原创 Spring Boot入门指南:留言板

1.写一个类对象,添加构造方法虽然有快捷键,但是还是不够偷懒项目添加Lombok。Lombok是⼀个Java⼯具库,通过添加注解的⽅式,简化Java的开发。下载插件Lombok通过⼀些注解的⽅式,可以帮助我们消除⼀些冗⻓代码,使代码看起来简洁⼀些 .@Data注解会帮助我们⾃动⼀些⽅法,包含getter/setter,equals,toString等.

2024-07-26 15:37:52 1967

原创 Spring Boot入门指南:轻松构建高效Spring应用(五)

定义返回的数据格式为⾮视图,返回⼀个text/html信息。

2024-07-25 22:52:10 1833

原创 Spring Boot入门指南:轻松构建高效Spring应用(四)

在计算机领域,会话是⼀个客⼾与服务器之间的不中断的请求响应.对客⼾的每个请求,服务器能够识别出请求来⾃于同⼀个客⼾.当⼀个未知的客⼾向Web应⽤程序发送第⼀个请求时就开始了⼀个会话.当客⼾明确结束会话或服务器在⼀个时限内没有接受到客⼾的任何请求时,会话就结束了."⽆状态"的含义指的是:默认情况下HTTP协议的客⼾端和服务器之间的这次通信,和下次通信之间没有直接的联系,但是实际开发中,我们很多时候是需要知道请求之间的关联关系的,例如登陆⽹站成功后,第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了。

2024-07-24 21:21:03 2080

原创 Spring Boot入门指南:轻松构建高效Spring应用(三)

SpringWebMVC是基于ServletAPI构建的原始Web框架,从⼀开始就包含在Spring框架中。它的正式名称“SpringWebMVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为Spring MVC。Q:什么是Servlet?

2024-07-22 21:28:38 1116

原创 Spring Boot入门指南:轻松构建高效Spring应用(二)

可以看到,Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和⽣产⼒的关注使其成为世界上最流⾏的Java框架。Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术,来解决对应的问题.Spring是一个很大的开源框架,它包含Spring core 和Spring家族。

2024-07-21 23:22:07 1462

原创 Spring Boot入门指南:轻松构建高效Spring应用(一)

Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。简而言之:Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包。举个例子~想象一下,你正在盖房子,需要各种材料,如砖块、水泥、木材等。Maven就像是你的材料供应商,它知道哪里可以找到这些材料(即Maven仓库),并且当你需要某种材料时,它会自动帮你订购并送到你的工地上。

2024-07-21 22:01:14 1669

原创 “深入JVM内部:揭秘Java程序运行的神秘黑盒“(二)

根据自己的需求定制类加载器。JVM 中进行类加载的操作,是有一个专门的模块,称为“类加载器"(ClassLoader)JVM 中的类加载器默认是有 三个 的.(也可以自定义)类加载器的作用:(问百度文心)上述的三个类加载器,存在"父子关系”(不是 面向对象中的父类,子类继承关系)而是类似于“二叉树”,有一个指针(引用) parent, 指向自己的“父”类加载器。

2024-07-17 22:24:25 1841

原创 “深入JVM内部:揭秘Java程序运行的神秘黑盒“(一)

JVM是的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVMVMwave。JVM和其他两个虚拟机的区别VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪。JVM是一台被定制过的现实当中不存在的计算机。

2024-07-17 22:22:40 863

空空如也

空空如也

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

TA关注的人

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