自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux系统离线部署MySQL详细教程(带每步骤图文教程)

使用sftp工具上传到/usr/local目录上在/usr/mysql/目录下groupadd mysql #创建用户组# -r 参数表示mysql 用户是系统用户,不可用于登录系统;# -g 将用户mysql添加到用户组mysql中chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为mysql用户chgrp -R mysql /usr/local/mysql/ # 将组属性改为mysql组mkdir -p /data/mysql #创建数据目录。

2025-11-08 17:14:15 953

原创 spring 跨域CORS Filter

方案一spring中可以采用的跨域配置方式如下:在一般性的配置中,在controller前添加@CrossOrigin即可使用spring的默认配置,允许跨域该注解也可以配置一些设定,适合针对个别的controller方案二webconfig的方式配置全局跨域这种方式的缺陷是,filter的顺序是固定的,在引入第三方组件的时候可能会因为filter滞后,导致出错方案三定制Filter方案3缺陷。

2025-11-06 22:03:32 520

原创 Spring Boot性能提升的核武器,速度提升500%!

虚拟线程是 Java 21 引入的一个新特性,用于简化并发编程。它与传统的操作系统线程相比,具有显著的优势:轻量级:虚拟线程由 JVM 管理,而非操作系统,因此它们的内存占用和创建成本远低于传统线程。理论上,你可以轻松创建数十万甚至更多的虚拟线程。高并发性:虚拟线程能处理更高并发的场景,特别是 I/O 密集型的应用,适合开发高并发、响应式的应用程序。自动管理:无需手动管理线程池,JVM 会根据负载自动调整虚拟线程的调度,简化了并发编程的复杂性。

2025-11-06 21:42:22 901

原创 SocketTool、串口调试助手、MQTT中间件基础

在 UDP Server 收到过 UDP Client 的数据后,其对方 IP 地址和 UDP 端口均可确定 下来,然后 UDP Server 也可以向 UDP Client 发送数据了。在串口工具COM2发送数据,COM1能收到,COM1发送的在工具里也能接收到。在 TCP Client 端的 Socket 即可收到数据12345。1)分别创建 UDP Server 和 UDP Client。然后打开串口调试工具,调整串口设置后打开串口COM2。2)先由 UDP Client 发送数据。

2025-11-06 21:22:59 194

原创 Nginx 跨域配置详细讲解

跨域资源共享(CORS,Cross-Origin Resource Sharing)是一种机制,它使用额外的HTTP头部来告诉浏览器让运行在一个origin(域)上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域HTTP请求。

2025-11-04 13:40:41 459

原创 mysql的分区表

---------------分割线-------------------------------下面以时间范围进行创建(每月一个分区,表中创建了四个月的分区)2、写存储过程,用于创建新的分区, 这里是按天创建新的分区。【针对mysql,使用mysql的定时事件】3、创建定时事件,调用存储过程。4、查看已经创建的定时事件。2、mapper文件。

2025-11-04 13:23:57 145

原创 MySQL 函数

MySQL 函数是服务器端定义的程序,可以接收输入参数,进行处理后返回一个结果值。函数的主要特点是可以在 SQL 语句中直接调用,通常用于计算、数据转换或返回某种特定的结果。与存储过程不同,函数必须返回一个值,并且可以在 SQL 语句的SELECT列表、WHERE子句、ORDER BY子句等位置使用。

2025-11-04 12:21:56 570

原创 Java进阶09文件

*需要注意:**length()这个方法,只能返回文件的大小,如果是文件夹调用,不会报错,但是返回的是错误数据!File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。//2、根据传入的字符串(父级路径,子级路径) 封装File对象。**注意:**delete()方法只能删除空文件夹,且不走回收站。//3、根据传入(父级路径文件对象,子级路径)封装File对象。File类代表操作系统的文件对象**(文件、文件夹)**//1、根据传入的字符串路径,封装File对象。

2025-11-04 11:34:42 633

原创 5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库

当我们设置 “application_name” 为 “Default” 时,这意味着我们希望将当前的数据库连接标识为默认应用程序,通常这是指使用 pgAdmin 4 连接到 PostgreSQL 数据库的客户端。当我们选择强制删除数据库时,pgAdmin 4会尝试删除数据库,并在删除之前,会递归删除所有与该数据库相关的依赖项,例如表、视图、函数等。当我们选择删除数据库时,pgAdmin 4会尝试删除数据库,但只有在没有其他数据库对象(如表、视图、函数等)依赖于要删除的数据库时才能成功删除。

2025-11-04 10:47:32 658

原创 sql中判断一个字段是否包含一个数据的方法有哪些?

问题:查询名字里带 “i” 的人。

2025-11-03 13:33:41 199

原创 springcloud springboot nacos版本对应

nacos 1.1.4版本存在服务异常离线问题,请谨慎使用。2.0.4.RELEASE(停止维护,建议升级)1.5.1.RELEASE(停止维护,建议升级)

2025-11-03 12:46:44 768

原创 SpringBoot SpringCloud spring framework 版本对应

spring-boot版本 依赖springframework jdk版本 发布时间。兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x。兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x。兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x。兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x。spring-boot和springframework、jdk的版本关系。

2025-11-03 12:00:58 254

原创 Spring Boot 2.7.x 至 2.7.18 及更旧的版本,漏洞说明

在 Spring Framework 版本 5.3.0 至 5.3.38 及更早的不受支持版本中,如果应用程序评估了用户提供的 SpEL(Spring Expression Language)表达式,攻击者可以利用特制的表达式导致拒绝服务(DoS)攻击。

2025-11-03 11:14:55 587

原创 PHP操作redis

下载win版php-redis扩展php-redis.dll文件,放入ext目录下,修改php.ini 并重启服务;默认在项目中还是采用官方的phpredis,本文也给出predis的使用方法,见后面的composer方式。2)phpredis需要下载扩展->编译安装,而predis不用,直接下载便可以操作。1)PHP的redis扩展有2个,分别是phpredis和predis扩展;安装phpredis,也可以从pecl.php.net站点下载。以下附上一个自主开发的PHP多库连接单例类,支持长连接。

2025-11-03 10:29:01 332

原创 MySQL篇之对MySQL进行参数优化,提高MySQL性能

innodb_flush_log_at_trx_commit:控制事务提交时日志的刷新策略。tmp_table_size 和 max_heap_table_size 控制内存中临时表的最大大小。如果设置为 1,每次写入二进制日志都会同步到磁盘,保证事务的持久性,但会带来一定的性能开销。磁盘 I/O 是数据库性能的重要瓶颈,合理配置与磁盘相关的参数有助于减少磁盘访问次数,提高性能。下面是一些常用的查询优化参数。MySQL 的日志记录可以帮助我们在故障时进行诊断,但是过多的日志记录会增加系统的负担。

2025-11-03 09:43:30 520

原创 Java集合进阶

产生原因:迭代器遍历的过程,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。元素有序,具体排序方法取决于构造方法(重写CompareTo接口/参数内重写Compare方法)并发修改异常 ConcurrentModificationException。解决方案:用for循环遍历,然后用集合对象做对应的操作即可。ArrayList(数组),LinkedList(链表)底层数据结构是哈希表,不包含重复元素。哈希表和链表实现set接口。迭代器 iterator。

2025-11-03 08:51:49 152

原创 SQL中的DISTINCT、SQL DISTINCT详解、DISTINCT的用法、DISTINCT注意事项

DISTINCT 是 SQL 中用来返回唯一不重复结果集的关键字。它通常用于 SELECT 语句中,可以指定一个或多个列进行去重,并返回唯一的结果。当你在使用 SELECT 查询数据时,可能会得到包含重复行的结果集。为了去除这些重复行,你可以使用 DISTINCT 关键字来获取唯一的记录。

2025-11-02 12:18:31 313

原创 SQL 注入详解:原理、危害与防范措施

SQL注入是一种常见的安全漏洞,攻击者通过在应用程序中插入恶意的SQL代码,诱使数据库执行非授权的操作。这种攻击通常发生在应用程序没有正确过滤或转义用户输入的情况下,导致攻击者能够操控数据库查询,从而获取、修改或删除数据。SQL注入是一个严重的安全问题,开发者必须采取有效措施来预防。使用预编译语句、严格验证用户输入、遵循最小权限原则等都是防范SQL注入的有效手段。此外,定期的安全审查和测试也是保障应用安全的重要环节。通过这些措施,可以大大降低SQL注入的风险,保护应用程序和用户数据的安全。

2025-11-02 12:11:17 426

原创 SQL Server中,CONVERT函数转换日期

在SQL Server中,CONVERT函数支持多种样式代码(style codes),用于指定日期和时间的格式。样式代码23是一种常用的格式,表示yyyy-mm-dd。

2025-11-02 12:04:02 214

原创 Spring集成kafka的最佳方式

对于springboot 1.5版本之前的话,需要自己去配置java configuration,而1.5版本以后则提供了auto config,具体详见org.springframework.boot.autoconfigure.kafka这个包,主要有。基于Spring Integration构建,在spring cloud环境中又稍作加工,也稍微有点封装了. 具体详见spring cloud stream kafka实例以及spring-cloud-stream-binder-kafka属性配置。

2025-11-02 11:56:33 862

原创 Spring容器的开启与关闭

destroy-method=“destroy” --Spring容器关闭的时候执行这个名字的方法。scope=“singleton”/> --默认的生成方式是单例模式 --且应该是饿汉模式。lazy-init=“true” 延迟加载,就是容器启动的时候不创建类的实例,懒汉模式。init-method=“init” — 初始化类实例的时候会加载这个名字的方法。再次运行的时候,发现Aoo中的无参构造输出语句出现了。所以:加载配置文件的时候会自动生成类的实例。创建一个类,在aoo包下 类名为Aoo。

2025-11-02 11:49:14 219

原创 SpringSecurity踢出指定用户

SpringSecurity中可以使用 SessionRegistry 的实现类 SessionRegistryImpl 来获取session相关信息,可以通过这个实现类来踢出用户。

2025-11-02 11:41:54 163

原创 SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由

前面分别对 Spring Cloud Zuul 与 Spring Cloud Gateway 进行了简单的说明,它门是API网关,API网关负责服务请求路由、组合及协议转换,客户端的所有请求都首先经过API网关,然后由它将匹配的请求路由到合适的微服务,是系统流量的入口,在实际生产环境中为了保证高可靠和高可用,尽量避免重启,如果有新的服务要上线时,可以通过动态路由配置功能上线。本篇拿 Spring Cloud Gateway 为例,对网关的动态路由进行简单分析,下一篇将分享动态路由的进阶实现。

2025-11-02 11:33:46 942

原创 Springboot项目本地连接并操作MySQL数据库

CrossOrigin(origin=“*”):允许所有来源访问该url,解决本地访问跨域问题@RestController:@Controller和@ResponseBody的组合,它告诉Spring这个类是一个控制器(Controller),并且所有的方法返回的内容都直接写入HTTP响应体中,而不是解析为跳转路径,这通常用于RESTful Web服务,其中返回的数据是JSON或XML等格式。

2025-11-02 11:26:26 648

原创 springboot系列--自动配置原理

1、SpringBoot启动时先加载META-INF/spring.factories下所有的自动配置类 xxxxxAutoConfiguration2、每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。xxxxProperties里面拿。xxxProperties和配置文件进行了绑定3、生效的配置类就会给容器中装配很多组件4、只要容器中有这些组件,相当于这些功能就有了5、用户可以自己定制化配置,有两种方式:a、直接自己写配置类使用@Bean替换底层的组件。

2025-11-02 11:19:04 601

原创 SpringBoot接口防抖(防重复提交),接口幂等性,轻松搞定

接口幂等性是指在分布式系统中,对于相同的请求,无论请求多少次,都应该返回相同的结果。这意味着,如果请求已经处理完毕,那么重复请求应该返回相同的响应,而不应该产生额外的副作用。这种特性对于确保系统的稳定性和一致性非常重要,尤其是在处理并发请求和网络异常的情况下。在编程中,可以通过一些特定的设计来实现接口幂等性,例如使用全局唯一的ID来标记请求,或者使用乐观锁机制来防止重复处理等。

2025-11-02 11:11:21 983

原创 SpringBoot中整合RabbitMQ(测试+部署上线 最完整)

RabbitMQ服务端是由并发式语言Erlang编写的,所以安装RabbitMQ的之前需要安装Erlang,保证所需要的环境。注意:这里没有下载的版本,下载需要与自己的版本一致,如果发现启动不了RabbitMQ,请看后面的启动RabbitMQ。由于目前是测试阶段,这里我使用之前学习的时候的版本。

2025-11-02 11:03:13 547

原创 springboot3整合SpringSecurity实现登录校验与权限认证(万字超详细讲解)

用户提交登录请求Spring Security 将请求交给 UsernamePasswordAuthenticationFilter 过滤器处理。UsernamePasswordAuthenticationFilter 获取请求中的用户名和密码,并生成一个 AuthenticationToken 对象,将其交给 AuthenticationManager 进行认证。

2025-11-02 10:36:40 709

原创 springboot 异步操作

future.get()` 和 `future.join()` 都是用于处理并发编程中异步任务的结果,但它们属于不同的编程框架或库,并且具有不同的用途和行为。- **库**: Java 的 `Thread` 类或 Kotlin 的协程(`join()` 在 Kotlin 协程中表现为 `await()`)。- 在 Java 中,`thread.join()` 会使当前线程(调用 `join()` 的线程)等待,直到目标线程终止。- `join()` 是 Java 线程的方法,用于等待一个线程完成。

2025-11-02 10:28:16 567

原创 Spring+SpringMVC项目中的容器初始化过程

而是因为Listener、Filter、Servlet是Web容器管理的,而bean是Spring容器或SpringMVC容器管理的。获取servlet节点信息,创建Servlet实例集合,其中的DispatcherServlet就是用来完成SpringMVC容器(XmlWebApplicationContext)初始化的;当执行SpringMVC容器的getBean方法在自己的context中找不到对应的bean,则会在父容器Spring容器的context中找对应的bean。至此,SSM项目启动完成。

2025-11-02 10:03:39 894

原创 spring Profile

Spring中的Profile是什么为什么要使用Profile如何使用Profile。

2025-11-02 09:53:45 750

原创 redis批量删除namespace下的数据

在开发中为了更好的管理数据,对redis进行了分组存储操作,在存值时加了命名空间来实现,如下:@Cacheable的value来实现分组。在批量获取数据时也需要加上namespace的前缀。

2025-11-01 12:50:33 168

原创 Redis-配置文件

在安装目录下找到解压文件中的redis.confRedis配置文件位于Redis安装目录下,文件名为redis.conf。

2025-11-01 12:09:01 895

原创 PostgreSQL异常:An IO error occurred while sending to the backend

在使用PostgreSQL。

2025-11-01 11:51:44 120

原创 Node.js看我的就行了!!!

最近nodejs崩了好多次,所以我决定重装。由于没有卸载干净,折腾了我两天#终于,我今天下午装好了我们从卸载开始(没有安装的小伙伴直接到第二步)

2025-11-01 11:35:55 584

原创 nginx中的proxy_set_header参数详解

proxy_set_header 是 Nginx 配置中用于设置代理请求 HTTP 头部的指令。当 Nginx 作为反向代理时,它允许自定义从客户端接收到的请求或添加新的请求头,然后将其转发到后端服务器。这对于维护 HTTP 协议的连贯性、安全性和功能性至关重要。X-My-Header 是一个自定义的请求头字段,用于存储自定义信息。上游服务器可以通过读取 X-My-Header 字段获取自定义信息。

2025-11-01 11:08:07 675

原创 MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案

mysql 5.7.5版本以上默认的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。但是,如果mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。这里说sql_mode不能设置NO_AUTO_CREATE_USER这个值,那直接去掉这个值就行了呗,也就是上面我提供的值。由于开启了ONLY_FULL_GROUP_BY的设置,如果select 的字段不在 group by 中,

2025-11-01 10:49:49 816

原创 mysql报错1267 - Illegal mix of collations解决方法

我输入下面代码错误这个错误是由于在执行查询时,两个表的。

2025-11-01 10:29:45 164

原创 MySQL中的GROUP_CONCAT()函数详解与实战应用

函数是一个强大且灵活的工具,可以帮助我们在进行数据分析、报表生成等场景下,方便快捷地将多行信息合并到一行展示,极大地提升了数据可视性和查询效率。需要注意的是,在多用户并发环境下,尤其是大数据量时,GROUP_CONCAT 的性能可能会受到影响,因为它需要在内存中进行数据处理。是一个非常实用的聚合函数,主要用于将属于一组的相关行的数据项进行合并并以字符串的形式返回。上述 SQL 语句将从 “orders” 表中选择不重复的产品名称,并使用默认的逗号作为分隔符将其拼接成一个字符串。总结来说,MySQL 中的。

2025-11-01 10:12:36 170

原创 MySQL-触发器(TRIGGER)

例如,对于一张数据表,不能同时有两个 BEFORE UPDATE 触发器,但可以有一个 BEFORE UPDATE 触发器和一个 BEFORE INSERT 触发器,或一个 BEFORE UPDATE 触发器和一个 AFTER UPDATE 触发器。BEFORE 和 AFTER,触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。现在触发器还只支持行级触发,不支持语句级触发。注意:当触发器设计对触发表自身的更新操作时,只能使用 BEFORE 类型的触发器,AFTER 类型的触发器将不被允许。

2025-11-01 09:54:38 903

空空如也

空空如也

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

TA关注的人

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