- 博客(46)
- 资源 (21)
- 收藏
- 关注
原创 Spring的@Configuration注解:深入解析与实战指南
在Spring框架中,Bean是指由Spring容器管理的对象。Spring容器负责创建、配置和管理这些对象的生命周期。Bean通常是应用程序中的组件,如服务、存储库、控制器等。注解是Spring框架中非常重要的一个注解,用于标记一个类为配置类,表示该类包含Bean的定义。通过注解,开发者可以精确控制Bean的创建和管理过程,包括组件扫描、导入其他配置类、条件配置等。在实际项目中,注解广泛应用于数据源配置、Web安全配置等场景。希望这篇文章能帮助你更好地理解注解的使用,并在实际项目中灵活应用它。
2026-04-21 10:33:01
199
原创 Spring 循环依赖
三级缓存中的对象工厂可以确保在需要时创建代理对象,并将其放入二级缓存,从而确保代理对象可以在循环依赖中正确地被引用。时,它需要立即解析所有的构造函数参数,这会导致循环依赖问题。但从设计和架构的角度来看,尽量避免循环依赖是更好的做法。在需要时延迟创建早期引用,而不是立即创建。可能无法正确地创建代理对象,因为代理对象的创建依赖于完整的。的完全初始化的实例后,完成自身初始化,并放入一级缓存。注入或者字段注入,也可以解决循环依赖问题。的引用,所以最终拿到的是一个完整的。的初始化,从而解决循环依赖问题。
2026-04-21 08:10:57
323
原创 PostgreSQL的备份方式
是 PostgreSQL 内置的逻辑备份工具,可以将数据库导出为 SQL 脚本或二进制文件。WAL-G 是 PostgreSQL 的现代备份工具,支持增量备份和快速恢复,常用于云环境。按照这些方式定期备份 PostgreSQL 数据库,可以最大程度地保障数据的安全和可恢复性。Barman 是社区维护的 PostgreSQL 专用备份工具,支持物理备份和时间点恢复。PostgreSQL 提供多种方式进行备份,适用于不同需求的场景。是 PostgreSQL 提供的物理备份工具,适合对数据库进行完整二进制备份。
2026-04-21 05:53:56
257
原创 MySQL中的count函数
在 MySQL 中, 是一个聚合函数,用于统计结果集中行的数量。它常见的几种用法包括:假设有一个 表,数据如下:idnameage1Alice252BobNULL3Charlie30NULLNULL20:结果:(统计所有行,无论字段是否为 )。:结果:(统计 列非 值的数量)。:结果:(去重后的 值:)。先给结论:方法功能执行过程性能情况统计所有行的数量(包括 行)遍历表或索引,计算所有行数,InnoDB 遍历聚簇索引最高效率,InnoDB 会通过聚簇索引快速扫描统计所有行的数量优化器会将其
2026-04-21 03:35:49
393
原创 java学习进阶之路,如果从一个菜鸟进阶成大神
诞生不过二十余年的Java语言凭借其跨平台、面向对象、适合于分布式计算的特性,广泛应用于Web网站、移动设备、桌面应用中,并且已经连续多年稳居TOBIE编程语言排行榜前列,最近更是登上冠军宝座。File及相关类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应缓冲流和管道流,字节和字符的转化流,包装流,以及常用包装类使用。图的深度优先搜索、图的广度优先搜索、拓扑排序、Dijkstra算法(单源最短路径)、霍夫曼编码、辗转相除法、最小生成树等。
2026-04-21 01:20:09
314
原创 Windows环境下安装Redis并设置Redis开机自启
一般来说,企业都是采用 Linux 服务器来部署 Redis 的,而且 Redis 官方也没有提供 Windows 版本的安装包Windows 版本的 Redis 基本上都是由第三方开发和维护的,那我们为什么还要用 Windows 版本的 Redis 呢试想一下,如果在用 Linux 服务器部署 Redis 时,被某些与 Redis 无关的问题卡住了(比如权限不够、安全组忘记放行端口、防火墙忘记开放端口等问题),是不是会浪费不少时间。
2026-04-19 19:38:09
203
原创 springboot设置多环境配置文件
实际开发过程中会涉及多个环境,比如dev(开发环境),test(测试环境),prod(线上环境),不同环境下,端口号、数据库地址、redis地址等等会不尽相同,为了避免每次上线到不同环境都要修改配置文件可以在项目中配置多个配置文件,需要哪个激活哪个。激活的是dev环境,所以项目启动时会读取application-dev.yml,使用的是8081的端口号。激活的是prod,此时读的是profile: profile的块,所以端口号是8087。1、在配置文件中激活,上面的实例就是使用的这种方式。
2026-04-19 16:49:48
153
原创 Spring Boot 经典九设计模式全览
/ 用户接口首先,定义一个接口,这是被代理对象必须实现的。首先,你需要定义一个主题接口,它包含添加、移除和通知观察者的方法。然后,定义一个观察者接口,它包含一个更新方法,当主题状态变化时被调用。首先,你需要创建一个抽象基类,其中包含一个模板方法(通常是final的,以防止子类覆盖它)和一些抽象方法(或钩子方法,这些可以是具体实现,但允许子类根据需要覆盖它们)。// 模板方法,定义了算法的框架step1();step2();// 钩子方法,允许子类在必要时提供自己的实现。
2026-04-19 14:10:01
213
原创 Nginx如何实现 TCP和UDP代理?
Nginx是一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP代理。在1.9.13版本后,Nginx已经支持端口转发,包括TCP和UDP协议。Nginx的TCP/UDP代理功能允许它作为一个中间人,接收来自客户端的TCP或UDP请求,并将这些请求转发到指定的后端服务器,然后将后端服务器的响应返回给客户端。通过这些配置,Nginx可以作为一个强大的TCP/UDP代理服务器,适用于多种应用场景,如数据库、邮件服务器、游戏服务器等。
2026-04-19 11:22:03
235
原创 MySQL —— 配置文件
本篇文章要介绍的是 MySQL 中的配置文件的相关内容。大多数 MySQL 程序都可以从配置文件(选项文件)中读取启动配置,可以在配置文件中指定常用配置,这样就不用在每次运行程序时都在命令行中输入它们。大部分配置文件都是纯文本格式,可以使用任何编辑器来进行创建。在 Windows 系统中,MySQL 配置文件的后缀名为.ini 或 .cnf,在 Linux 系统中,MySQL 配置文件的后缀名只有.cnf。
2026-04-19 02:52:27
190
原创 网络安全防护指南:筑牢网络安全防线(510)
网络是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息收集、存储、传输、交换、处理的系统。在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。它连接了世界各地的人们,使得信息的传递和交流变得更加便捷高效。
2026-04-18 07:37:54
287
原创 SpringMVC(看这一篇就够了)
MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分:Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。View(视图):用于展示模型中的数据的,一般为jsp或html文件。Controller(控制器):是应用程序中处理用户交互的部分。接受视图提出的请求,将数据交给模型处理,并将处理后的结果交给视图显示。
2026-04-18 00:27:38
401
原创 redis分页查询
redis不仅可以存普通文本,还可以存入List,这里就整理了下用redis做分页查询的功能。首先定义一个redis工具类,这里只贴出了需要的方法。redis分页查询效率很高,对于不需要持久化的数据可以使用此方案。接下来是应用层的调用。
2026-04-04 04:43:58
27
原创 MySQL-递归查询
举一反三,则查询id为12的所有父节点信息的就是从下至上的递归查询,SQL如下所示。这里其实还有另一种利用mybatis的collection子查询的写法,一笔带过。我们先来看看从上至下的递归查询的SQL语句,查询id为1的节点的所有子节点。这里的classpath指的是当前节点的路径,后续说明其作用。查询分类id为12的所有父级分类信息。1、查询指定id的分类节点的所有。2、查询指定id的分类节点的所有。查询id为12的父级分类信息。查询分类id为6的分类信息。查询id为6的分类信息。
2026-04-04 01:44:05
229
原创 SpringBoot中如何手动开启事务
一、使用 TransactionTemplate1、配置 TransactionTemplate2、使用 TransactionTemplate二、使用 PlatformTransactionManager 直接管理事务1、注入 PlatformTransactionManager在Spring Boot中,虽然大多数情况下推荐使用@Transactional注解来管理事务,但有时需要更灵活地手动控制事务。
2026-04-02 07:48:32
62
原创 PostgreSQL的case when语句使用
使用时case when then 的数据类型要相同,否则会报错。下面是自己实际用到的情况,供自己学习记录。上面是在网上搜到的介绍。
2026-04-02 04:31:34
33
原创 MySQL Workbench 超详细安装教程(一步一图解,保姆级安装)
MySQL Workbench 是一款强大的数据库设计和管理工具,它提供了图形化界面,使得数据库的设计、管理、查询等操作变得更加直观和便捷。本文将详细介绍如何在 Windows 系统上安装 MySQL Workbench。相信读者看这篇文章前一定安装了MySQL数据库吧,还没安装的话,请先去安装一下MySQL哦!
2026-04-02 01:14:49
396
原创 在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)
(9)现在我们就来看进行一次匹配的过程,也很简单,我们还是创建一个while循环,如果s1和s2解引用不是 ,并且解引用后相等,那我们就让s1和s2加加,一直往后走,当循环结束时,我们就判断s2解引用后是否是 ,如果是说明完全匹配上了,就返回cp,不是那么说明没有完全匹配,就让cp++,开始下一次循环查找。而不带n的字符串函数和带n的字符串函数的根本区别是带n的字符串函数更灵活,可以指定拷贝的字符的个数,所以也叫带n的字符串函数为受限制的字符串函数,不带n的为不受限制的字符串函数。
2026-04-01 05:55:35
405
原创 【JavaEE】Spring Web MVC
官方文档介绍:翻译:Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring 框架中。正式名称“Spring Web MVC”来自其源模块的名称 (spring-webmvc),但更常见的名称是“Spring MVC”。与 Spring Web MVC 并行,Spring Framework 5.0 引入了一个反应式堆栈 Web 框架,其名称“Spring WebFlux”也基于其源模块 (spring-webflux)。
2026-04-01 02:51:00
203
原创 springboot与springcloud以及springcloudalibaba版本对照
由于 Spring Boot 2.4+ 和以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 2.4 为分界线,同时维护 2.2.x 和 2021.x 两个分支迭代。为了规避相关构建过程中的依赖冲突问题,我们建议可以通过 云原生应用脚手架 进行项目创建。2.0.4.RELEASE(停止维护,建议升级)1.5.1.RELEASE(停止维护,建议升级)
2026-03-31 06:10:14
240
原创 PHP代码调试(vscode+xdebug+phpstudy)
第一步是配置php的环境变量,csdn里有很多文章可以直接搜索即可了解怎么配置,大概就是将phpstudy里的php文件位置复制到环境变量里,最后使用cmd检查是否配置成功。将php的路径放到此处,该路径就在小皮的Extensions里面。在vscode左侧的拓展处搜索可下载这个php debug。创建这个文件,注意端口号要与小皮里的一致。使用记事本打开配置文件里的php.ini。再点开phpdebug里的json。再点击它设置里的扩展组件。点开文件,首选项里的设置。点开vscode里的调试。
2026-03-31 02:56:51
189
原创 Node.js实现WebSocket教程
WebSocket是一种在单个TCP连接上提供全双工通信的协议,允许服务器和客户端之间进行实时、双向通信。本教程将详细讲解如何在Node.js中实现WebSocket。
2026-03-30 05:45:43
40
原创 Linux下PostgreSQL-12.0安装部署详细步骤
其中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。至此,已完成postgreql的安装。进入/opt/pgsql/postgresql目录可以看到安装后的postgresql的文件。
2026-03-30 02:12:59
357
原创 【Oracle11g SQL详解】日期和时间函数:SYSDATE、TO_DATE、TO_CHAR 等
FROM dual;-- 结果:2024-12-31FROM dual;-- 结果:Today is 11TH DECEMBER, 2024。
2026-03-28 13:10:23
263
原创 Cmd命令大全(万字详细版)
将原本输出到命令窗口的内容,转存到文件中,如jstack 12912 >d:/s.txt 打印线程到指定文件。-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;–ip或–inet:此参数的效果和指定"-A inet"参数相同。-x或–unix:此参数的效果和指定"-A unix"参数相同;-l或–listening:显示监控中的服务器的Socket;-n或–numeric:直接使用ip地址,而不通过域名服务器;
2026-03-26 00:16:35
388
原创 Navicat for MySQL下载安装教程
Navicat for MySQL 是一套用于本地或远程 MySQL 和 MariaDB 数据库服务器管理和开发的数据库管理工具。它提供了一种强大的数据库管理界面,支持数据库对象的创建与维护,数据的导入与导出,以及数据同步等功能。
2026-03-25 05:00:30
202
原创 Linux部署Redis集群
Redis (REmote DIctionary Server) 是一个高性能的 key-value 数据库,完全开源,遵守 BSD 协议。Redis支持数据持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载进行使用。Redis不仅仅支持简单的key-value类型数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。
2026-03-25 02:25:28
202
原创 【MySQL】视图
视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。视图是一种虚拟表,其内容由查询(通常是SQL查询)定义。**视图本身不存储数据,而是基于一个或多个基表(实际存储数据的表)生成。**当访问视图时,数据库系统会自动执行定义视图的查询,并返回结果集。
2026-03-24 14:44:42
456
原创 Spring详解
以上就是今天要讲的内容,本文仅仅简单介绍了使用set方法注入属性的使用,set方法是较为常用的方法,除了set方法还有构造法和工厂方法注入属性。
2026-03-24 04:38:55
208
原创 SDN架构详解
SDN架构中OpenFlow交换机基于流表(Flow Table)转发报文。经典网络依靠网络设备通过查询路由表指导流量转发当前OpenFlow的主流应用是用于数据中心的软件交换机,例如OVS、CE1800V(华为)等,而不是实现硬件交换机的转控分离每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成。其中关于转发的关键的两个内容是匹配字段和指令。匹配字段是匹配规则,支持自定义。指令是用来描述匹配后的处理方式。
2026-03-23 11:33:22
350
原创 MySQL中between and的基本用法
是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B。not between and表示指定范围之外的值。not between A and B相当于 < A or >B。从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。当between and用于数值查询时,常用于字段类型为int、decimal等。当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。示例:查询年龄不在24到25之间的用户。
2026-03-23 03:35:22
188
原创 【MySQL】复合查询
首先,要有一张每个部门的平均工资临时表,然后用临时表与员工表做连接查询,从连接查询的结果中筛选出来符合条件的即可。首先我们要始终明确一点:sql查询出来的结果一定是一张表,所以可以把一个子查询的结果当做一个临时表使用。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。先查询10号部门的岗位,就当前表而言,其结果会有多行记录;然后再找出岗位相同的。首先要找出最高的工资,然后使用工资去比较,使用嵌套查询(子查询),也是在开发过程中使用的最多的连接查询。
2026-03-22 05:08:44
176
原创 spring-cloud-gateway报错Failed to bind properties under ‘‘ to org.springframework.cloud.gateway
这里是因为PredicateDefinition在添对应的Predicate的时候,根据PredicateDefinition的name取出对应的XXXXRoutePredicateFactory。比如name是Query,那么对应的就是QueryRoutePredicateFactory,如果name是Header,那么对应的就是HeaderRoutePredicateFactory。这里的addArg会有一个key,这里的key必须和XXXXRoutePredicateFactory的对应。
2026-03-22 01:59:09
214
原创 QoS质量配置
当自定义排队在某个接口上生效的时候,系统将会为这个接口维护17个输出队列。你可 以指定队列1到16。与每一个输出队列相关的是可配置字节总数以及数据包的类型。可 配置字节总数指定在系统移动到下一个队列以前,系统应当从当前的队列中发送多少字 节的数据。编号为0的队列是一个系统队列;在任何编号为1到16之间的队列得到处理以前,编号 为0的队列将先被清空。系统把优先权级别高的数据包,例如保持活动数据包以及信令 数据包,安排到这个队列。其他的通信不能够使用这个队列。
2026-03-21 06:38:51
332
QT实现音乐播放器
2017-10-30
java练手项目
2016-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅