rabbitmq spring rpc

Spring Event 观察者模式, 业务解耦神器

观察者模式在实际开发过程中是非常常见的一种设计模式。 Spring Event的原理就是观察者模式,只不过有Spring的加持,让我们更加方便的使用这一设计模式。 一、什么是观察者模式 概念: 观察者模式又叫发布-订阅模式。 发布指的是当目标对象的状态改变时,它就向它所有的观察者对象发布状态更改的消 ......
解耦 观察者 神器 模式 业务

既然有HTTP协议,为什么还要有RPC?

我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用得好好的,为什么还要用RPC协议? 于是就到网上去搜。 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们不认识的概念去解释另外一个我们不认识的概念,懂的人不需要看,不懂的人看了还是不懂 ......
HTTP RPC

RabbitMQ、RocketMQ和Kafka的不同之处

RabbitMQ、RocketMQ和Kafka是三种常见的消息队列系统,它们在设计和使用方面有一些不同之处: 架构设计: RabbitMQ:RabbitMQ是一个基于AMQP(高级消息队列协议)的开源消息队列系统,采用的是传统的Broker架构模式,其中包括生产者、消费者和中间件(Broker)。 ......
RabbitMQ RocketMQ Kafka

Spring Boot构建web项目01

配置: 破解版IDEA2019.3.3 Maven--3.6.3 java--1.8(8) jdk--8 打开IDEA,new 一个 project,选择Spring Initializr 改写maven管理和java版本8 选择web项目 添加指定父级工程信息和java版本依赖 <modelVer ......
项目 Spring Boot web

Spring IOC(控制反转)和DI(依赖注入)

IOC(控制反转) IOC-Inversion of Control,即控制反转。它不是什么技术,而是一种设计思想。 ​ 传统的创建对象是通过new方式来创建的,而Spring是通过IOC容器进行创建的,把对象的创建,初始化,销毁等等工作交给容器。 DI(依赖注入) 依赖注入是一种设计模式。其主要是 ......
Spring IOC DI

【IOC,AOP】spring的基础概念

IOC 控制反转 对象的创建控制权转交给外部实体,就是控制反转。外部实体便是IOC容器。其实就是以前创建java对象都是我们new一下,现在我们可以把这个new交给IOC容器来做,new出来的对象也会交由IOC容器来管理。这个new出来的对象则称为Bean。 IOC容器 负责创建和初始化并存放Bea ......
概念 基础 spring IOC AOP

消息队列 RabbitMQ

发布者:生产者,消息的发送方。连接:网络连接。Channel:信道,多路复用连接中的一条独立的双向数据流通道。Exchange:交换器(路由器),负责消息的路由到相应队列。类型:direct、fanout、topicBinding:队列与交换器间的关联绑定。消费者将关注的队列绑定到指定交换器上,以便 ......
队列 RabbitMQ 消息

Spring Boot - 讨论为什么 Service 层需要写 Service 接口再写其实现类 impl?

接口的概念 接口(interface)是一种在面向对象编程中非常重要的概念,它有助于提高程序的可扩展性和灵活性。以下是接口如何体现程序高扩展性的几个方面: 分离接口与实现:接口定义了类应该具备的行为,但不提供具体的实现细节。这使得你可以将接口与其实现分离开来。当你需要更改或扩展程序的功能时,你可以创 ......
Service 接口 Spring Boot impl

【Spring boot】 全局配置文件application.properties

默认使用以下 2 种全局的配置文件,在 Spring Boot 启动时被自动读取 application.properties application.yml properties的语法如下: 使用properties的key=value形式 使用层级递进关系。 从最高层到最低层逐个低级,中间使用点 ......
全局 application properties 文件 Spring

go-zero 生成RPC

1.编写message.proto文件 syntax = "proto3";package pb;// 生成golang 代码后的包名option go_package ="./pb";enum Status{ UNSPECIFIED=0; SUCCESS=1; FAILED=2;}message ......
go-zero zero RPC go

面试官问Spring 启动流程,把这篇文章甩给他!

大家好,我是三友~~ 今天来扒一扒Spring在启动过程中核心的12个步骤 之所以来写这篇文章,主要是来填坑的 之前在三万字盘点Spring 9大核心基础功能这篇文章的末尾中给自己挖了一个坑,提了一嘴有机会要写这么一篇文章 但是由于Spring启动过程并不复杂,所以后面就没写了 不过,好巧不巧,刚刚 ......
篇文章 流程 Spring

关于Spring i18n国际化 报错No message found under code * for locale 'zh_CN'.的解决方案

第一步 创建资源文件 国际化文件命名格式:基本名称 _ 语言 _ 国家.properties 这里我建了两个配置文件,一个是zh_CN中文的,一个是en_GB英文的,然后在里面随便写点测试文本语句 第二步 bean.xml spring配置文件 1 <?xml version="1.0" encod ......
解决方案 message 方案 Spring locale

springBoot spring6 无法加载 thymeleaf的,在html页面中无法智能感知 th:这些

网上所有的坑我都试过了,还是无法解决问题, @Controller public class SellController { @RequestMapping("/test01") /* @ResponseBody */ public String index(){ return "test01"; ......
springBoot thymeleaf spring6 页面 智能

Spring Boot - Parameter 0 of constructor in com.example.iocdi.controller.UserController required a single bean, but 2 were found

问题描述 如上图所示,在加入了 @MapperScan 注解之后就出现了这个问题。 file:[src/java/config/MybatisConfig.java] @Configuration @MapperScan("com.example.iocdi") public class Mybat ......

spring boot文件的上传和下载后端的实现

文件上传 文件上传,也称为upload,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。 前端介绍 1.简单html页面 <form method="post" action="/comm ......
端的 文件 spring boot

k8s集群-spring cloud 集成seata的时候:can not register RM,err:can not connect to services-server.

背景说明 seate和其他微服务在k8s集群中部署,都在同一个命名空间。注册到nacos的同一个命名空间 seate是官方提供,无改动 k8s中部署情况: 报错提示 core服务的报错内容: 2023-09-12 11:07:06.524 ERROR 7 [eoutChecker_2_1] i.s. ......
services-server 集群 can not register

rabbitmq Exception (504) Reason: \"channel id space exhausted\

使用go的包:github.com/rabbitmq/amqp091-go 出现报错:get mq channel error {"error": "Exception (504) Reason: \"channel id space exhausted\""} ctx := context.Bac ......
Exception exhausted rabbitmq channel Reason

SpringCloud为啥要采用HTTP,不采用RPC

1、首先SpringCloud开启WEB服务依赖于Tomcat,Tomcat内部采用HTTP协议,开发者编写JSON作为资源传输和响应,可以更加能灵活处理业务数据。 2、RPC基于TCP协议,客户端和服务端需要三次握手,四次挥手进行数据传输。TCP是数据传输层,传输协议统一由服务端进行编写,进行二进 ......
SpringCloud HTTP RPC

为啥Spring Boot 提倡使用依赖注入(Dependency Injection)的设计模式

Spring Boot 提倡使用依赖注入(Dependency Injection)的设计模式,这种模式的主要目的是解耦和提高代码的可测试性、可维护性和可扩展性。以下是注入的一些优点: 1.解耦和模块化:通过使用依赖注入,你可以将不同的模块解耦,它们之间通过接口进行交互而不是直接依赖具体的实现类。这 ......

Spring Bean 的作用域(Bean Scope)

前言 大家好,我是 god23bin,今天我们来聊一聊 Spring 框架中的 Bean 作用域(Scope)。 什么是 Bean 的作用域? 我们在以 XML 作为配置元数据的情况下,进行 Bean 的定义,是这样的: <bean id="vehicle" class="cn.god23bin.d ......
Bean 作用 Spring Scope

Spring 注入集合

使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean。那么如果您想传递多个值,例如Java集合类型,如List、Set、Map和Properties怎么办?为了处理这种情况,Spring提供了四种类型 ......
Spring

Spring集成线程池

在Spring中,可以使用TaskExecutor接口来集成线程池。以下是一个示例代码,演示如何在Spring中配置和使用线程池: 1. 首先,添加依赖项,以使用Spring的线程池支持。在Maven项目中,可以在pom.xml文件中添加以下依赖项: <dependencies> <!-- 其他依赖 ......
线程 Spring

如何理解Spring Boot中的Starters,以及Starter的工作原理

如何理解Spring Boot中的Starters Starters可以理解为启动器,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。 ......
Starters 原理 Starter Spring Boot

rabbitmq详细实例

1. 概述 RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。 FROM 《维基百科 —— RabbitMQ》 Rabbit ......
实例 rabbitmq

简单介绍 Spring MVC 的核心组件

DispatcherServlet 和九大组件(按使用顺序排序的): 组件 说明 DispatcherServlet Spring MVC 的核心组件,是请求的入口,负责协调各个组件工作 MultipartResolver 内容类型( Content-Type )为 multipart/* 的请求的 ......
组件 核心 Spring MVC

Spring 事务

Spring 事务实现方式有哪些 编程式 优点:灵活 缺点:麻烦,难以维护 声明式 加注解 Spring的事务管理有什么优点 支持声明式事务管理 提供跨不同事务api的一致事务模型 传播规则 借用 别人的的图片方便记忆 支持当前事务的“女生”,这里的事务指的是“房子”,它分为 3 种(普通型女生): ......
事务 Spring

Spring中@Autowired、@Qualifier、@Resource、@Primary、@Inject注解的区别

@Primary注解在Spring框架中用于解决自动装配冲突。当存在多个类型相同的Bean时,如果没有使用@Qualifier注解或者@Qualifier注解没有指定Bean的名称,Spring框架将无法判断应该使用哪个Bean进行注入。此时,可以使用@Primary注解来指定默认的Bean。被@P ......
注解 Autowired Qualifier Resource Primary

spring和springboot注解的使用

spring和springboot注解的使用 首先看一下ElementType取值范围: //用于描述类、接口(包括注解类型) 或enum声明 TYPE, //用于描述域 FIELD, //用于描述方法 METHOD, //用于描述参数 PARAMETER, //用于描述构造器 CONSTRUCTO ......
注解 springboot spring

Spring 框架中用到了哪些设计模式

单例,spring的bean的scope默认就是单例 工厂,例如beanfactory,ApplicationContext创建对象 代理,aop使用了代理 模板,以xxxtemplate结尾的都是用到了模板模式,例如jdbc,redis,rabbit~ 剩下的 包装器设计模式 观察者模式 适配器模 ......
设计模式 中用 框架 模式 Spring

Spring 中的单例 bean 的线程安全问题

线程安全问题是由静态变量引起的,如果只是对静态变量读取的话,没有线程安全问题,如果有写入的话,就会导致线程安全问题 bean可以分为两种,一种是有状态,一种没有状态 状态可以认为是实例变量,可以保存数据 如果没有状态,也就没有线程安全问题,使用sigleton范围,提高性能 如果有状态,使用prot ......
线程 Spring 问题 bean