草庐IT

Spring-boot-websocket

全部标签

【Spring源码】 BeanFactory和FactoryBean是什么?

1、前言面试官:“看过Spring源码吧,简单说说Spring中BeanFactory和FactoryBean的区别是什么?”大神仙:“BeanFactory是bean工厂,FactoryBean是工厂bean”。这么回答,等于面试官问你Spring是什么,你回答这个单词翻译叫春天。2、ChitGPT的回答首先看下C知道(ChitGPT)的回答没错,基本上已经给出了答案。那么接下来,我们来详细看下他们分别是什么。3、什么是BeanFactory?其实BeanFactory回答是bean工厂也没毛病,确实是。但是却没回答到本质。我们知道,Spring其中一个核心功能就是IoC。Spring创建b

【WebSocket】协议详解

目录简介一、WebSocket是什么?二、使用WebSocket1.WebSocket工作原理    1.1握手(建立连接)    1.2数据传输2.WebSocket    2.1事件    2.2方法    2.3属性 3.WebSocket优点4.WebSocket的使用场景简介    websocket是html5提供的一种浏览器与服务器进行全面双工通讯的网络技术,是基于TCP传输的应用层协议一、WebSocket是什么?        WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。        http是一种无状态,无连接,单向的应用层协议,它采用了请

Spring Boot整合新版Spring Security:Lambda表达式配置优雅安全

文章目录1.引言2.项目依赖配置3.使用Lambda表达式配置SpringSecurity4.自定义身份验证逻辑5.认证与授权注解5.1@Secured注解5.2@PreAuthorize和@PostAuthorize注解6.总结🎉SpringBoot整合新版SpringSecurity:Lambda表达式配置优雅安全☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒的博客🎈该系列文章专栏:架构设计📜其他专栏:Java学习路线Java面试技巧Java实战项目AIGC人工智能数据结构学习🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏📜欢迎大家关注!❤️SpringSe

72.是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫 描)

一、是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫描)不可以,这样会导致我们请求接口的时候产生404。如果所有的Bean都交给父容器,SpringMVC在初始化HandlerMethods的时候(initHandlerMethods)无法根据Controller的handler方法注册HandlerMethod,并没有去查找父容器的bean;也就无法根据请求URI获取到HandlerMethod来进行匹配二、知识延伸Spring容器中的Bean对于开发者来说,开发者使用Spring框架主要是做两件事:①开发Bean;

Spring Boot整合MyBatis Plus实现基本CRUD与高级功能

文章目录1.引言2.项目搭建与依赖配置2.1添加MyBatisPlus依赖2.2配置数据源与MyBatisPlus3.实现基本CRUD功能3.1创建实体类3.2创建Mapper接口3.3实现Service层3.4控制器实现4.高级功能实现4.1自动填充功能4.2乐观锁功能4.3逻辑删除功能5.拓展:MyBatisPlus的其他功能5.1条件构造器5.2分页查询5.3性能分析6.总结🎉欢迎来到SpringBoot框架学习专栏~☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒的博客🎈该系列文章专栏:SpringBoot📜其他专栏:Java学习路线Java面试技巧Java实战项目AI

【SpringBoot3】Spring Boot 3.0 集成 Redis 缓存

文章目录一、什么是redis缓存二、SpringBoot3如何集成Redis三、spring-boot-starter-cache结合Redis使用1、什么是spring-boot-starter-cache2、Redis集成步骤3、使用示例参考一、什么是redis缓存Redis缓存是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它主要用于作为数据库、缓存和消息中间件,以快速读写和丰富的数据结构支持而著称。在应用程序和数据库之间,Redis缓存作为一个中间层起着关键作用。通过将常用的数据存储在Redis内存中,可以快

spring boot的redis连接数过多导致redis服务器压力过大的一次问题排查

一、背景在今天上午的时候,突然收到大量的sentry报错,都是关于redis连接超时的警告。首先想到的是去查看redis的监控,发现那个时间段,redis的请求数剧增,cpu使用率和带宽都陡增双倍。下面的是redis监控的cpu情况最后贴一张redis的流量到目前为止,可以看到redis的压力确实上来了。随之,阿里云也给我们发来告警,说redis连接超时,导致主从切换。于是,我们推测是程序的访问量剧增,接口中都又依赖redis,导致访问redis的请求等陡增。当然,至于为什么会发生,是不是就是redis出问题了呢?最后又应该怎么调整?是调整程序,还是加大redis的配置?二、监控从监控大盘能看

Spring-Kafka 发送消息的两种写法

文章目录前言写法一:发送的消息对象是字符串1创建项目2项目结构3application.yml配置文件4生产者KafkaProducerComponent5消费者KafkaConsumerComponent6控制器(GET请求发送消息)7启动类8测试效果写法二:发送复杂消息对象1创建项目2项目结构3application.yml配置文件4信任的包中定义的实体类4.1kafka消息接口规则定义4.2测试实体定义5生产者KafkaObjectSerializerProducerComponent6消费者KafkaObjectSerializerConsumerComponent7控制器(GET请求

boost库实现websocket分别传输二进制与字符串的心得

 一、背景    最近的工作有一项任务就是websocket兼容json字符串和音视频流,之前都没有接触过音视频方向,网上找了找也没找到合适的博客,大部分都是js的代码实现,就干脆自己看boost库源码找找方法,正好记录一下这一次的学习过程。二、过程    因为我的websocket 协议是用boost 库实现的,所以就从 boost 库中找对应的实现方法。1.寻找分辨二进制与字符串类型的函数:        在 boost 的stream.hpp 头文件中,我找到了设置 opcode 值的函数:templatevoidstream::binary(boolvalue){impl_->wr_o

Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战

一、前言在现代软件开发中,事务处理是必不可少的一部分。当多个操作需要作为一个整体来执行时,事务可以确保数据的完整性和一致性,并避免出现异常和错误情况。在SpringBoot框架中,我们可以使用声明式事务和编程式事务来管理事务处理。其中事务的坑也是不少,比较常见的就是事务失效,大家可以看看!后面小编在出一篇事务失效场景哈,喜欢的可以关注,等待更新哈!这篇博客将重点探讨这两种事务处理方式的源码实现、区别、优缺点、适用场景以及实战。我们来接着说事务,里面还涉及到三个知识点,大家可以自行百度好好了解!事务的特性事务的传播行为隔离级别本篇文章主要讲的就是实现事务的两种方式的分析!让我们开始探索声明式事务