- 博客(120)
- 收藏
- 关注
原创 【2024最新Java面试宝典】—— SpringBoot面试题(44道含答案)_java spingboot 面试题
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。Spring JavaConfig 是 Spring 社区的产品,Spring 3.0引入了他,它提供了配置 Spring IOC 容器的纯Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:面向对象的配置。
2025-03-22 03:43:50
1027
原创 SQL 中 COUNT 的用法详解
COUNT(*):统计表中所有行,包括NULL值。COUNT(1):与COUNT(*)类似,统计所有行。COUNT(列名):统计某列中非NULL值的数量。COUNT(DISTINCT 列名):统计某列中不重复的非NULL值。COUNT可与GROUP BY和HAVING等子句结合,进行复杂的分组统计和条件过滤。COUNT(*)和COUNT(1)在大多数数据库中性能相同,可以按习惯使用。
2025-03-22 02:07:35
454
原创 SpringBoot集成Prometheus
现在2.3.0.RELEASE和1.5.4.RELEASE版本的服务,都可以成功暴露出一个给Prometheus拉取指标的接口,只需要在Prometheus上进行配置即可在Prometheus WEB UI上看到效果。但生产环境的真实情况,不可能只收集一个服务的指标,是否再需要一个代理服务,该服务用来收集所有微服务的指标后,再统一暴露接口给Prometheus,需要再根据生产环境使用情况考虑。启动服务后,访问/actuator/prometheus接口,可以看到Micrometer替我们收集到的指标。
2025-03-22 00:30:28
432
原创 SpringBoot 3.4.x踩坑记录及解决方案(持续更新)
第一:不能只引入mybatis-plus-spring-boot3-starter依赖了,需要配合mybatis-plus-jsqlparser。解决方案:升级springdoc-openapi-starter-webmvc-ui 2.7.0。没有@ApiModel 和@ApiModelProperty写法,全局使用@Schema。这个改动真的有点大,切费老鼻子劲了,不建议旧项目直接迁移,不然得改到S3赛季开战!之前的写法:(这样一直没毛病啊,但是3.4.0不行!
2025-03-10 23:13:35
310
原创 Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
在包下精心构建与数据库表结构对应的实体类,例如创建User@Data此处借助 Lombok 的@Data注解简化了常规的getsetequalshashCode等方法编写,若未引入 Lombok,需手动生成这些方法。于包内创建UserMapper接口,用@Mapper@Mapper。
2025-03-10 17:14:09
990
原创 RabbitMq 基础
我们观察下,下面这个余额支付功能的流程图:如果我们采用的是基于 OpenFeign 的同步调用,也就是说业务执行流程是这样的:三个步骤依次执行。这其中就存在3个问题:我们目前的业务相对简单,但是随着业务规模扩大,产品的功能也在不断完善。在大多数电商业务中,用户支付成功后都会以短信或者其它方式通知用户,告知支付成功。假如后期产品经理提出这样新的需求,你怎么办?是不是要在上述业务中再加入通知用户的业务?某些电商项目中,还会有积分或金币的概念。假如产品经理提出需求,用户支付成功后,给用户以积分奖励或者返还金币,你
2025-03-10 12:27:29
876
原创 Nginx实战 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”
Nginx 的历史可以追溯到 1990 年代末期,当时互联网开始迅速发展,传统的 HTTP 服务器如 Apache 开始显得力不从心,无法满足日益增长的访问量和并发请求。Nginx 的设计理念是追求极高的性能和稳定性,同时还具有较低的内存消耗和资源占用,这使得它能够处理大量并发请求,非常适合于需要处理高负载的服务器环境。通过这些测试和优化方法,你可以了解 Nginx 的性能瓶颈,并采取相应的措施来提高其性能。Nginx 的测试和优化可以通过多种方式进行,包括负载测试、性能测试、配置优化和代码级优化。
2025-03-07 22:38:18
574
原创 MySQL初学之旅(5)详解查询
哈喽大家好吖,今天继续给大家分享MySQL的学习——查询的详解,本篇也是干货多多语法与示例讲解都很详细,希望大家耐心学习哦,那么话不多说让我们开始吧。这里让我们总结一下:函数功能COUNT()计算某列中的行数SUM()计算某列值的总和AVG()计算某列值的平均值MAX()返回某列中的最大值MIN()返回某列中的最小值。
2025-03-05 18:53:21
674
原创 MySQL & NaviCat 安装及配置教程(Windows)【安装】
链接:https://pan.baidu.com/s/1UPqhBKoEVcc-dYNiWdPh3Apwd=g9iw。链接:https://pan.baidu.com/s/1xDhgalgOGoY26WSojD59Zgpwd=jb36。链接:https://pan.baidu.com/s/1U8e7i2Hl4CwmqssGWTcvPQpwd=ddf2。链接:https://pan.baidu.com/s/1U8e7i2Hl4CwmqssGWTcvPQpwd=ddf2。(1)百度网盘(16 版本)
2025-03-05 17:30:50
1333
原创 JAVA集成Jasypt进行加密、解密(SpringBoot)
Jasypt 是 Java 平台的简化加密工具,支持对文本和数据进行加密和解密,尤其适合应用于 Spring Boot 项目的配置文件加密。简单易用的 API支持对属性文件内容加密支持常见的加密算法与 Spring Boot 的无缝集成Jasypt 支持多种加密算法和配置项。如果你需要使用不同的加密算法、密钥生成方式等,可以通过 Java 配置进行自定义。通过自定义@Bean// 配置加密密钥,务必保密// 设置加密算法// 设置密钥迭代次数,影响破解难度。
2025-03-05 16:05:29
811
原创 详解MySQL中查询结果排序(含实例分析)
在MySQL中,对查询结果进行排序是SQL查询中的一项基本且强大的功能。它允许你控制数据返回的顺序,这对于数据分析、报告生成和数据展示等场景至关重要。以下是对MySQL排序功能的详细说明。通过对MySQL排序功能的深入了解和应用,我们可以更有效地管理和分析数据库中的数据。以上内容涵盖了排序的基本语法、使用场景、注意事项以及具体的运用实例和分析说明,希望对你有所帮助。
2025-03-03 11:04:34
774
原创 数据库课设---酒店管理系统(MySQL、VBNet)
当在客房表中加入一条信息后显示“已占”表示有客户入住,当在客房表中删除一条信息后显示“已退”表示客户离开。也请各位佬指出不足!(3) 联系:用菱形表示,菱形框内写明联系名,并用无向边与其有关实体连接。代码:(此处代码繁多,只截取主代码,剩下的都是粘贴这个管理系统的图片)(4)查询客房物品(roomitem)信息的视图定义如下。(2)查询客房(rooms)信息的视图定义如下。客房(客房号,客房类型,客房状态,客房单价)入住(客房号,入住时间,退房时间,住宿费用)客户(客户编号,姓名,性别,手机号)
2025-03-02 21:53:33
592
原创 使用Springboot实现MQTT通信
MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模型的轻量级消息传输协议,常用于物联网(IoT)场景中。它设计简洁、带宽占用少,非常适合资源受限的设备和网络环境。
2025-03-02 18:55:34
888
原创 【油猴脚本】00020 案例 Tampermonkey油猴脚本, 仅用于学习,不要乱搞。添加不可移动到窗口外的功能。Jquery爬虫,JavaScript爬虫HTML+Css+JavaScript编写
哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!?
2025-03-01 15:05:46
578
原创 【Sql Server】随机查询一条表记录,并重重温回顾下存储过程的封装和使用
温故而知新,最近在写sql查询语句,需求是随机查询表的其中一条记录。基于这个查询,顺便把数据库自定义函数、存储过程这个两个知识点重温固定下。因此,本篇文章将在随机查询一条表记录的基础上,把sql语句封装到存储过程里。
2025-03-01 00:37:30
840
原创 【MySQL】深度理解事务的隔离性:全面讲解事务的四种隔离级别
*前言:**上节内容我们主要说了如果没有设置保存点, 也可以回滚,但是只能回滚到事务的开始。直接使用rollback的前提是事务还没有提交。并且如果一个事务被提交了,就不可以回退。同时我们也可以使用savepoint设置回滚点。可以自己选择想要回滚到的位置。同时最后我们也提到了,InnoDB支持事务, 但是MyISAM不支持事务。这节就将更深入的使用事务。看一下事物的特性——隔离性。下面友友们开始学习吧!
2025-02-28 22:59:11
666
原创 Windows系统启动Redis
在以下地址中选择一个Windows系统可以使用的版本。即Redis可以正常工作。出现以下界面即启动成功。启动Redis客户端。
2025-02-28 13:57:54
152
原创 Spring统一功能处理:拦截器、响应与异常的统一管理
添加拦截器后,执Controller的法之前,请求会先被拦截器拦截住执 preHandle() 法,这个法需要返回个布尔类型的值:如果返回true,就表放本次操作并且继续访问controller中的法;在拦截器当中,开发员可以在应程序中做些通性的操作,如通过拦截器来拦截前端发来的请求,判断Session中是否有登录的信息,如果有就可以放,如果没有就进拦截。拦截器是Spring框架提供的核功能之,主要来拦截的请求,在指定法前后,根据业务需要执预先设定的代码。我们可以针对不同的异常,返回不同的结果。
2025-02-28 12:17:53
771
原创 SpringBoot整合MQTT最详细版(亲测有效)
springboot控制台(也就是PushCallback.java里的回调方法messageArrived)也成功打印出了客户端接收到的消息,如图。创建mttqController控制器发送消息,如图。MqttPushClient.java代码。使用MQTTX客户端工具查看消息成功被发送。PushCallback.java代码。AjaxResult.java代码。mttqController代码。MqttInit.java代码。浏览器输入接口地址调试发送成功。
2025-02-28 10:34:47
302
原创 Spring 循环依赖
三级缓存中的对象工厂可以确保在需要时创建代理对象,并将其放入二级缓存,从而确保代理对象可以在循环依赖中正确地被引用。时,它需要立即解析所有的构造函数参数,这会导致循环依赖问题。但从设计和架构的角度来看,尽量避免循环依赖是更好的做法。在需要时延迟创建早期引用,而不是立即创建。可能无法正确地创建代理对象,因为代理对象的创建依赖于完整的。的完全初始化的实例后,完成自身初始化,并放入一级缓存。注入或者字段注入,也可以解决循环依赖问题。的引用,所以最终拿到的是一个完整的。的初始化,从而解决循环依赖问题。
2025-02-27 13:45:22
282
原创 spring AOP详解
AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善;在不修改源代码的情况下,给程序动态统一添加额外功能的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2025-02-27 12:23:50
615
原创 Python 网络爬虫教程:从入门到高级的全面指南
网络爬虫是自动访问互联网并提取信息的程序。它可以用于数据采集、市场分析、学术研究等多种场景。简单来说,网络爬虫就是模拟用户在浏览器中的行为,获取网页内容。本文详细介绍了 Python 网络爬虫的基础知识、实现步骤及实战案例。随着技术的不断发展,网络爬虫的应用场景也在不断扩大。未来,你可以结合机器学习等技术,进一步提升数据分析能力。
2025-02-27 11:01:14
1386
原创 Nginx解决前端跨域问题
通过 Nginx 配置 CORS 头部信息,可以有效解决前端跨域问题,允许前端应用从不同的域名、协议或端口请求资源。在配置过程中,需要仔细考虑安全性、性能优化和管理的易用性,以确保跨域请求的安全和高效处理。Nginx 强大的配置能力使其能够灵活应对各种跨域需求,为前端应用提供强有力的支持。
2025-02-26 03:29:22
785
原创 MySQL 与 Redis 的数据一致性问题
简单来讲,我们只能保证先到的请求的第一阶段写的执行顺序(MySQL 内部的事务),第二阶段写就无法保证执行顺序(除非使用强一致性方案),这时候如果使用更新 Redis 的方案就有数据错误的风险。这种清除 Redis 的策略如果有频繁的更新对导致缓存层(Redis) 会失效, 大量的请求会打到 mysql 上面,mysql 可能直接被打爆,造成严重的事故.这时候Redis 的数据是错误的,会导致后面查询的时候全部查询到错误的数据(只能重新加载 MySQL 数据到 Redis 才能恢复)
2025-02-26 00:48:38
674
原创 Linux修改Redis密码
找到Redis配置文件redis.conf,通常位于/etc/redis/或/usr/local/etc/目录。使用CONFIG SET命令修改密码。重启Redis服务以应用更改。连接到Redis服务器。
2025-02-26 00:03:33
166
原创 java进阶知识点
缺点:会制造大量垃圾,由于他们不能被重用而且对于它们的使用就是”用“然后”扔“,字符串就是一个典型的例子,它会创造很多的垃圾,给垃圾收集带来很大的麻烦。当然这只是个极端的例子,合理的使用不可变对象会创造很大的价值。其次,String类的主力成员字段value是个char[]数组,而且是用final修饰的。这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现,使用接口的引用调用的方法,永远不需要改变。通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~
2025-02-25 20:50:38
408
原创 Go基础之环境搭建
Go语言,也被称为Golang,是一种由Google开发的静态类型、编译型编程语言,是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。go.mod是Go Modules的核心文件,用来定义模块及其依赖项。
2025-02-24 18:46:12
662
原创 2024最新版Node.js详细安装教程(含npm配置淘宝最新镜像地址)
之前的JavaScript最初的用途是前端,只能在浏览器端中运行。但后来Ryan Dahl发现JavaScript在后端上能够进行许多操作,于是开发出Nodejs平台,允许后端人员也能在服务器端对JavaScript进行操作,而不仅限于浏览器端。此处为你希望将Nodejs安装到哪里,可以是默认的,也可以自定义,前提是要明确安装到哪里。所以cnpm实际上可以当做中国版的npm,但cnpm 安装的模块路径比较奇怪。我们既然已经将npm配置了淘宝镜像,则速度与功能基本与cnpm没有差别,且稳定性更好。
2025-02-24 15:54:21
1021
原创 链接MySQL报错2059 -Authentication plugin ‘caching sha2 password‘ cannot be loaded解决方案
在MySQL 8.0及以上版本中,默认的用户密码认证插件是’caching_sha2_password’,而在MySQL 5.7及以下版本中,默认的是’mysql_native_password’。如果客户端不支持’caching_sha2_password’,就会出现这个错误。新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。法2:修改用户的密码认证插件:可以将用户的密码认证插件改为’mysql_native_password’。
2025-02-23 12:21:44
352
原创 漏洞分析 Spring Framework路径遍历漏洞(CVE-2024-38816)
VMware Spring Framework是美国威睿(VMware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。近期,监测到Spring Framework在特定条件下,存在目录遍历漏洞(网宿评分:高危、CVSS 3.1 评分:7.5):当同时满足使用 RouterFunctions 和 FileSystemResource 来处理和提供静态文件时,攻击者可构造恶意请求遍历读取系统上的文件。
2025-02-23 05:54:18
1226
原创 安装 SQL Server 2016及SQL Server Management Studio
勾选“混合模式(SQL Server身份验证和Windows身份验证)”—根据自身喜好看是否设置密码—点击下图所框起来的“添加当前用户”—点击下一步。打开SQL Server 安装中心----侧边栏选择“安装”----右边选择“全新SQL Server 独立式安装或向现有安装添加功能”。点击“添加当前用户”—点击下一步—输入控制器名称—选择工作目录/结果目录。勾选“多维和数据挖掘模式”—点击“添加当前用户”—点击下一步。勾选“安装和配置”–勾选“仅安装”–点击下一步。勾选“我接受许可条款”—点击下一步。
2025-02-23 04:07:07
512
原创 四大.NET ORM框架深度对比:EF Core、SqlSugar、FreeSql与Dapper的性能、功能与适用场景
框架名称应用场景优势劣势EF Core企业级应用、复杂CRUD操作、强类型支持项目、微服务架构1. 支持多种数据库2. 强大的LINQ支持3. 良好的模型映射和数据验证4. 易于与ASP.NET Core结合5. 跨平台支持,良好社区和文档1. 性能相对较低(尤其在复杂查询时)2. 学习曲线陡峭3. 生成的SQL需要手动优化SqlSugar中小型项目、快速开发场景1. 类似LINQ查询语法,快速上手2. 支持多种数据库。
2025-02-22 03:36:18
460
原创 Spring概述与核心概念学习 -- Spring入门(一)
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码以及可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)Spring Framework 是一个功能强大的 Java 应用程序框架,旨在提供高效且可扩展的开发环境。它结合了轻量级的容器(IOC)和依赖注入(DI)
2025-02-21 21:57:06
808
原创 springboot之集成Elasticsearch
网上 springboot 集成 Elasticsearch 的文章很多,但随着 springboot 和 Elasticsearch 版本的不断升级,绝大多数文章使用的集成方式和调用的方法已经过时,几乎找不到能真正适用最新 springboot 版本和最新 Elasticsearch 版本的文章。本文正是基于最新 springboot 版本和最新 Elasticsearch 版本实现了集成。
2025-02-21 16:34:09
620
原创 Spring Boot的项目结构
合理的项目结构不仅能够提高代码的可读性和可维护性,还能够帮助团队成员更好地协作。特别是在大型项目中,良好的项目结构设计能够有效降低代码的耦合度,提高系统的可扩展性。此外,合适的测试结构和构建配置也是保证项目质量的重要因素。Spring Boot项目结构遵循Maven或Gradle的标准目录结构,同时融入了Spring Boot的特定约定。良好的项目结构不仅有助于代码组织,还能提高开发效率和项目可维护性。了解Spring Boot的项目结构对于开发高质量的应用至关重要。
2025-02-21 15:03:31
244
原创 Redis 设置密码(配置文件、docker容器、命令行3种场景)
注意:通过命令设置密码后,为了防止下次服务重启后又变成没有密码,请注意配合以上 1、2 两种方式在服务重启后配置对应的密码。以上两种方法,都需要重启服务,如果是某些环境需求不允许停机 redis,则我们可以通过。或者直接使用 redis 桌面客户端工具连接 redis 后进入客户端命令行。如果你本地没有默认的 redis.conf 配置文件,可以从。来为 redis 设置密码,配置完后需要重启方可生效。如果 redis 是 docker 容器,可以使用命令。通过修改 redis.conf 配置文件中的。
2025-02-21 02:00:21
344
原创 Node.js v16 版本安装
(如果输入变量值之后没有自动创建【node_modules】文件夹,就在【node_global】下手动创建一个【node_modules】文件夹)1、找到安装的目录,在安装目录下新建两个文件夹【node_global】和【node_cache】然后你就会发现【node_global】里多出了一个【node_modules】文件夹。在【系统变量】中选择【Path】点击【编辑】添加【NODE_PATH】,点击【确定】【此电脑】-单击右键-【属性】-【高级系统设置】-【环境变量】
2025-02-20 23:39:12
897
原创 MySQL数据库报错:ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket
在安装或配置MySQL数据库时,是一个常见的错误,这可能会阻碍数据库的正常使用。本文将深入探讨这个错误的原因、诊断方法以及详细的解决步骤,帮助你快速恢复MySQL数据库的正常运行。
2025-02-20 22:17:08
553
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人