自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【测试】JMeter从入门到进阶

JMeter 是 Apache 组织使用 Java 开发的一款测试工具:1、可以用于对服务器、网络或对象模拟巨大的负载2、通过创建带有断言的脚本来验证程序是否能返回期望的结果优点:1. 开源、免费 2. 跨平台 3. 支持多协议 4. 小巧 5. 功能强大缺点:1. 不支持IP欺骗 2. 使用JMeter无法验证JS程序,也无法验证页面UI,所以要和Selenium配合来完成Web2.0应用的测试下载安装查看。

2024-08-25 15:01:11 1322

原创 【RabbitMQ】高级特性

本文将介绍一些RabbitMQ的重要特性。本文是使用的Spring整合RabbitMQ环境。

2024-08-21 23:03:46 1335 4

原创 【RabbitMQ】SpringBoot整合RabbitMQ

对于RabbitMQ的开发,Spring方法提供了更为方便的操作.Spring官网介绍: Spring AMQPRabbitMQ官网介绍: RabbitMQ tutorial - "Hello World!"

2024-08-16 15:15:00 673

原创 【RabbitMQ】 相关概念 + 工作模式

本文将介绍一些MQ中常见的概念,同时也会简单实现一下RabbitMQ的工作流程。

2024-08-15 18:04:28 888

原创 【测试】博客系统的测试报告

个人博客系统采用了 SSM 框架与 Redis 缓存技术的组合 ,为用户提供了一个功能丰富、性能优越的博客平台。在技术架构上 ,SSM 框架确保了系统的稳定性和可扩展性。Spring 负责管理项目的各种组件 ,Spring MVC 实现了清晰的请求处理 和视图渲染 , MyBatis 则高效地处理数据库操作。功能方面 ,用户可以轻松撰写、编辑和发布博客文章。前端主要有 登录/注册、个人中心、操作博客的相关界面构成。后端主要有 登录/注册、用户信息操作、博客等相关操作。

2024-07-29 19:44:22 443

原创 【JVM】JVM相关概念详解

JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。

2024-07-27 16:53:58 1075

原创 【JavaEE】AQS原理

首先有个整体认识,全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。常用的ReentrantLock、Semaphore、CountDownLatch等都有实现它。

2024-07-22 10:29:44 991

原创 【JavaEE】Executors中常见线程池工厂方法及其使用

本文将介绍Executors中常见一些工厂方法。Executors中的工厂方法其实就是对ThreadPoolExecutor的封装,方便使用。

2024-07-19 16:14:28 985

原创 【JavaEE】CAS原理实现 + 常见应用

CAS:比较和交换(设置) Compare And Swap(Set)。当A的值为5的时候,给A设置值为10。这里涉及到的比较和设置值的操作是原子的。

2024-07-19 11:28:13 1094

原创 【JavaEE】volatile + final + wait-notify + join + park-unpark 相关原理

本文所讲的一些原理都是在多线程中经常使用的内容。

2024-07-18 12:19:48 1107

原创 【JavaEE】synchronized原理详解

synchronized的加锁过程是逐步提高的,并不是一上来就要加重量级锁。

2024-07-17 21:52:50 1345

原创 【MySQL】事务&实现原理

事务是将一组SQL语句打包成一个整体,在这组SQL的执行过程中,要么全部成功,要么全部失败。这组SQL语句可以是也可以是。如果转账成功,应该满足以下要求:张三的账户余额减少100,变成900;李四的账户余额增加了100,变成1100。不允许出现张三的余额减少而李四的余额没有增加的情况。(原子性)转账前张三和李四的总余额不变,即转账前他们的余额总数为2000,转账后他们的余额总数也应为2000。(一致性)转账后的余额结果应当保存到存储介质中,以便日后查询和确认。(持久性)

2024-07-01 14:18:36 1410 2

原创 【MySQL】InnoDB架构

InnoDB架构整体上是分成两部分的:内存结构(提高效率)和磁盘结构(数据持久化),下面将把每个区域都大致做一个介绍。

2024-06-29 17:08:51 1081

原创 【MySQL】InnoDB的存储结构

InnoDB的存储结构:每个表都会生成一个表空间文件,这个文件里面最小结构就是行,存储的真正的数据,一个页来管理若干行,一个区来管理若干页,一个区组来管理若干区。段并不是真正的物理存储结构,它只是把这些数据结构划分成两部分(B+树的叶子节点和非叶子节点)。

2024-06-28 14:20:53 927

原创 【MySQL】架构体系概览

MySQL架构整体由外部程序和MySQL服务器构成。其中内部服务器分成连接层,服务层,服务管理和公共组件,存储引擎层和文件系统层。

2024-06-27 12:18:29 1170

原创 阿里AI-Spring Cloud Alibaba AI:快速搭建自己的通义千问

Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1 版本 API 完成通义系列大模型的接入。通义接入是基于阿里云 灵积模型服务,灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上,围绕 AI 各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。在当前最新版本中,Spring Cloud Alibaba AI 主要完成了几种常见生成式模型的适配,包括对话、文生图、文生语音等,开发者可以使用 Sp

2024-06-26 16:56:31 1097

原创 【SpringCloud】API网关(Spring Cloud Gateway)

Spring Cloud Gateway 提供了过滤器的扩展功能,开发者可以根据实际业务需求自定义过滤器。自定义过滤器也支持 GatewayFilter 和 GlobalFilter 两种类型。自定义 GatewayFilter 需要实现对应的接口 GatewayFilterFactory。Spring Boot 默认提供了一个实现该接口的抽象类 AbstractGatewayFilterFactory,我们可以直接使用它。配置@Data实现@Slf4j@Component。

2024-06-24 20:27:57 1181

原创 【SpringCloud】OpenFeign-远程调用

Netflix于2013年6月发布了Feign的第一个版本1.0.0,并于2016年7月发布了最后一个版本8.18.0。在2016年,Netflix将Feign捐献给社区,并于同年7月发布了OpenFeign的首个版本9.0.0,随后持续发布至今。因此,可以简单理解为Netflix Feign是OpenFeign的祖先,或者说OpenFeign是Netflix Feign的升级版。OpenFeign是Feign的一个更强大、更灵活的实现。(后续提到的Feign都是 OpenFeign)

2024-06-23 12:57:01 1325

原创 【SpringCloud】Nacos

2018年6月,Eureka 2.0宣布闭源(但1.X版本仍然活跃),同年7月,阿里Nacos宣布开源,并迅速成为国内开发者关注的焦点。作为Eureka的替代品,Nacos目前已经成为国内开发者的首选。ming andervice)最初开源时,选择将内部的三个产品(Configserver非持久注册中心,VIPServer持久化注册中心,Diamond配置中心)合并并统一开源。其定位为一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

2024-06-21 13:39:58 870

原创 【SpringCloud】负载均衡(Spring Cloud LoadBalancer)

负载均衡策略一般有轮询,随机。Spring Cloud LoadBalancer默认使用的是轮询。接下来将自定义一个随机的算法。// 不需要Configuration注解,只需要在组件扫描范围内即可@Bean。

2024-06-20 12:55:19 2081

原创 【SpringCloud】Eureka的简单使用

本文使用的是jdk17,mysql8。以下用两个服务做演示:订单服务:提供订单ID,获取订单详细信息。商品服务:提供商品ID,获取商品详细信息。对于上篇订单服务调用商品服务的时候,使用Spring提供的RestTemplate远程调用时,url部分是写死的,这是很不方便我们后续的操作。针对这个问题,这里使用Eureka来解决。

2024-06-17 14:45:49 1343

原创 【MySQL】日志详解

本文使用的MySQL版本是8。介绍了MySQL常见的日志。

2024-06-13 15:42:48 1108

原创 【SpringCloud】创建新工程

本文使用的是jdk17,mysql8。以下用两个服务做演示:订单服务:提供订单ID,获取订单详细信息。商品服务:提供商品ID,获取商品详细信息。

2024-06-12 17:38:44 939 3

原创 【MySQL】服务器配置和管理

MySQL服务器通常说的是mysqld程序。mysqld 是 MySQL 数据库服务器的核心程序,负责处理客户端的请求、管理数据库和执行数据库操作。管理员可以通过配置文件和各种工具来管理和监控 mysqld 服务器的运行本文将介绍下面三个内容:服务器启动选项:可以在命令行和配置文件中指定,用于配置服务器的行为和特性。服务器系统变量:反映了启动选项的当前状态和值,其中一些变量可以在服务器运行时修改。服务器状态变量:包含了关于运行时操作的计数器和统计信息。

2024-06-09 21:49:51 1440 2

原创 【MySQL】常见可执行程序

本文介绍了一些常用的mysql应用程序,包括使用,注意事项及其常用选项或者命令。

2024-06-08 21:58:53 913 2

原创 【JavaEE】MyBatis + 单元测试

这是MyBatis官网对MyBatis的介绍。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2023-05-21 22:59:12 1309 1

原创 【JavaEE】SpringMVC

请求重定向是指将请求从一个Web资源(如Servlet或JSP)发送到另一个Web资源,并且在过程中会更改URL。在请求重定向期间,Web容器会向浏览器发送一个302 HTTP状态码的响应,该响应包含一个新的URL,浏览器会自动发送一个新的请求以获取新的资源。简单来说就是 客户端像服务器发送请求,服务器这里不处理这个请求,但是会给客户端一个URL,然后客户端根据返回的URL重新访问。上述代码虽然保存了文件,但是有个致命的错误,就是下次再上传文件的时候,之前的旧文件会被新文件覆盖,原因是文件名写死了。

2023-05-12 11:32:02 856

原创 【JavaEE】SpringBoot的日志

日志门面:是一个抽象层,它提供了统一的日志接口,使应用程序能够按照一致的方式记录日志,而不需要关心具体的日志实现。在应用程序中使用日志门面接口编写代码,使得应用程序可以在运行时动态地切换具体的日志实现,而不需要修改代码。日志实现:是实现了日志门面接口的具体日志框架,应用程序在运行时通过配置文件指定所需要的具体日志实现,日志门面就会调用相应的日志实现来记录日志信息。上述的日志只是打印在了控制台上,并没有记录到文件(持久化)当中,这显然是不科学的。在配置文件中修改日志级别,现在来修改一下上一个程序的日志级别。

2023-04-26 22:07:42 1300 1

原创 【JavaEE】SpringBoot配置文件的设置及其读取

Properties 是一种常见的配置文件类型,其以键值对(key-value)的形式保存配置信息。Properties 格式的文件通常使用 .properties 后缀名,该文件包含了若干行文本和 ASCII 编码的字符集,其中每一行都表示一个属性的键值对。以上两个读取配置文件的方法默认读取的是主配置文件中的内容。通常在IDEA中的properties的字符集是不适配中文的,读取配置文件信息的方法有很多,下面将介绍一些常见的方法。通过该注解可以指定读取的位置,然后读取出来配置项。这就需要我们修改一下。

2023-04-25 14:58:32 1003

原创 【JavaEE】社区版IDEA(2021.X版本及之前)创建SpringBoot项目

Spring Boot 是基于 Spring 构建的一个快速开发框架,它就像一个集成了 Spring 的生态系统,提供了各种功能来简化 Spring 应用程序的开发和配置,同时还支持自动配置、内嵌式容器等特性,可以快速构建可执行的、独立运行的应用程序。版本兼容性:Spring 与其相关技术的版本需要手动配置,而 Spring Boot 提供了严格的版本管理,确保不同版本之间的兼容性。开发体验:Spring Boot 提供了更好的开发体验,提供了快速开发的功能和可视化的指标展示等。有什么错误评论区指出。

2023-04-23 09:30:00 929 1

原创 【JavaEE】Bean的作用域和生命周期

最后Service从Spring中获取到User,查看是否和最开始的User一样。由于我们目前的项目是Spring Core项目,目前只可以演示单例作用域和原型作用域。现在来演示一下单例作用域的效果。销毁容器的各种⽅法,如 PreDestroy、DisposableBean 接⼝⽅法、destroy-method。默认的作用域是单例作用域,当我们想要更改其作用域是,通过注解和配置文件的方式更改。最后打印一下User,看看是否符合单例的模式。把上述的Bean从单例作用域变成原型作用域。

2023-04-22 15:54:46 350

原创 【JavaEE】Spring中存储和获取Bean(使用注解)

上篇文章的存储Bean是在Spring的配置文件下通过bean标签来把Bean存储到Spring容器中,其中需要设置标签属性id 和 name,还是比较麻烦的,接下来介绍一种更为简单也最为常用的方法来存储Bean。但是通过方法名获取通常是不使用的,我们可以在@Bean注解后重写命名,通过新名字来获取,同时。5. 该注解是把方法的返回值存入到Spring中,如果方法没有返回值,就不能使用该注解。这是JDK提供的注入Bean的注解,和@AutoWired有以下的区别。上述工作完成后就可以通过注解存储Bean。

2023-04-16 14:05:21 1721

原创 【JavaEE】Spring项目的创建与使用

功能方面:ApplicationContext出了拥有BeanFactory的所有功能之外,还添加了一些其他功能:对国际化支持、资源访问的支持、事务传播方面的支持等。在存储Bean之前,先要在resources目录下创建一个Spring的配置文件,这里面是用来声明存放Bean的。继承方面:二者都是Spring容器的顶级接口,ApplicationContext是BeanFactory的子类。Spring项目的创建主要是在maven项目引入依赖后下载依赖,这时一个maven项目就变成了Spring项目。

2023-04-12 10:49:36 1091

原创 【JavaEE】Spring + IoC + DI

在Spring框架中,DI通过@Autowire注解、构造函数注入、Setter方法注入等方式来实现。其中,@Autowire注解是最常用的方式,它可以自动装配对象,并且可以根据类型、名称、注解等条件进行注入。它从Spring容器中取出已经注册的对象,比如上面的车身、底盘和轮胎,哪个类需要,直接从容器中取出使用即可。上面提到了IoC,它是一种反转控制权思想,而DI则是它的实现方式。这就导致了,所有的代码都要大改动。,是面向对象的一种设计原则。由于每个类之间都是层层依赖的关系,并且都是。

2023-04-11 13:30:00 598

原创 【Java】有关JVM常见的一些问题

每隔一段时间进行一下扫描,JVM从根节点(GCroots)出发,把可以访问得到的对象做个标记,不能访问到的全部当成垃圾回收了。以上三个部分的数据区域都是每个线程私有的,每个线程创建出这样的空间来。内存模型:每个Java方法执行的时候都会创建一个函数的栈帧,包括:局部变量表,操作帧,动态链接,方法返回地址。Java中的对象都是通过引用来指向并访问的,引用中的成员又指向了其他对象。符号引用:记录的不是真正的地址,而是相较于真正地址的偏移量。:执行类的构造器,把对象初始化,加载父类,执行静态代码块等。

2023-04-06 16:10:48 728

原创 【Linux】常用的命令

上述文件的读写操作只是最简单的用法。VIM这个软件给我们提供了更加丰富的操作。VIM相当于Windows中的记事本。显示数字形式地址而不是去解析主机、端口或用户名。复制要递归复制目录中的每一份文件,所以要有 r。而移动则是移动整个目录,内部文件一起移动了。有什么错误评论区指出。以用户为主的格式来显示程序状况。显示所有正在或不在侦听的套接字。相较于ls,查看的文件内容更加。显示所有程序,不以终端机来区分。退出编辑模式,回到普通模式。删除文件(不用确认)显示一个终端的所有进程。显示套接字所属进程的。

2023-04-05 15:22:14 568

原创 【JavaWeb】博客系统(前端部分)

整个页面通用的CSS。因为页面有些操作是相同的(比如清楚浏览器的默认样式),有的地方贯穿了整个页面(比如导航栏),对于这些地方写一个通用的CSS可以节省工作量。这里的markdown文章编辑器使用现成的。有什么错误评论区指出。有了后端数据后就可以变成这样的页面。GitHub上一搜就有。至此,前端页面大功告成了。

2023-04-02 21:17:11 276

原创 【JavaWeb】Cookie和Session

Cookie是浏览器提供持久化存储数据的机制。Session是服务器提供持久化存储数据的机制。服务器收到的请求有很多,这些请求中有些是带有Cookie的请求。但是如何识别验证Cookie的,就是通过服务器存储的Session来验证的。

2023-03-30 19:45:01 626

原创 【JavaWeb】Servlet API详解

当写Servlet代码的时候,首先就是要创建类,然后继承这个HttpServlet这个类,重写里面的方法。上面的代码中或多或少已经使用到了这个类,这个类就是服务器给客户端返回响应用的。Servlet程序销毁前会使用一次destroy方法。Servlet程序的生命周期和它上面的方法息息相关。该类是通过Tomcat解析构造后表示的HTTP请求。Servlet程序启动的时候使用一次init方法。使用Postman构造浏览器请求。Postman构造的前端请求。使用ajax构造浏览器请求。通过上面的方法,我们只是。

2023-03-19 13:26:08 2875

原创 【JavaWeb】Tomcat的安装及使用 + Servlet + IDEA创建Servlet程序流程

创建Servlet程序是较为繁琐的,但是大多数步骤都是固定的。Servlet是实现动态页面的技术,是Tomcat给程序员提供的一组API,能够简单高效的开发web app。其中生成了 .jar后缀文件就是我们需要的,但又不是我们正真想要的。使用插件部署的不会生成 .war包,只能访问当前界面,和手动部署的完全是不同的。.war是Tomcat专门生成的描述webapp的包,里面还有一些其他资源。.jar打包的是一些 .class文件和一些其他的配置文件。我们需要的是 .war 为后缀的文件是我们想要的。

2023-03-15 00:21:25 831

空空如也

空空如也

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

TA关注的人

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