
Spring
文章平均质量分 92
Spring
=PNZ=BeijingL
always be learning
展开
-
SpringAMQP中AmqpTemplate发送接收消息
Spring AMQP提供了一个扮演核心角色的“模板”,定义操作的接口是AmqpTemplate , 接口操作涵盖了发送和接收消息的一般行为 . 因此他包含了发送和接收消息的所有基本操作. 模板接口的每一个实现都依赖特定的客户端类库, 目前只有RabbitTemplate。原创 2022-11-04 10:22:58 · 2853 阅读 · 0 评论 -
SpringAMQP和RabbitMQ入门
Spring AMQP项目将Spring的核心概念应用到基于AMQP的消息传递解决方案的开发中。它提供了一个“模板”作为发送和接收消息的高级抽象。它还通过一个“监听器容器”为消息驱动的POJOs提供支持。这些库方便了AMQP资源的管理,同时促进了依赖注入和声明性配置的使用。原创 2022-10-31 19:37:02 · 1946 阅读 · 0 评论 -
Spring中的Bean继承关系
写在之前最近没事在浏览Spring官网,简单写一些相关的笔记,并不包所有技术点,信息来自Spring5.2.3。原创 2022-10-24 17:39:44 · 1880 阅读 · 0 评论 -
Spring中自定义Bean行为InitalizingBean和DisposableBean
Spring虽然可以通过InitializingBean完成一个bean初始化后对这个bean的回调,但是这种方式要求bean实现Spring提供的 InitializingBean接口。这个bean的代码就和Spring耦合到一起了。Spring的 DisposableBean接口允许bean在容器中销毁时回调,DisposableBean接口仅有一个destory方法,该方法在BeanFactory在销毁单例时调用,此接口的异常只会被记录在日志中不会抛出,保证其他bean可以释放它们的资源。原创 2022-10-18 19:55:51 · 681 阅读 · 0 评论 -
Spring中的依赖关系(DI)
Spring 以“依赖注入”的方式实现了“控制反转"的效果,以便符合软件工程中“依赖倒置”原则。原创 2022-10-11 16:23:55 · 1050 阅读 · 2 评论 -
Spring中的作用域Bean Scope
Spring Framework框架提供了一种思想,当创建bean定义时,需要先创建一个配方(官网叫recipe),用配方创建由该bean定义定义出的类的实际实例。这种方式不仅可以实现控制要插入到从特定bean定义创建的对象中的依赖项和配置值,而且还可以控制从特定bean定义创建对象的范围。这种方法功能强大且灵活,因为您可以通过配置选择创建的对象的范围,而不必在Java类级别控制对象的范围。原创 2022-10-01 00:00:27 · 635 阅读 · 0 评论 -
Spring 中有哪些感知接口
Spring内置了用于不同目的的大量感知接口,实现这些感知接口的Bean在被初始之后,DI容器就会自动调用这些回调接口所定义的方法,进而将相关对象注入进来,可以取得一些相对应的资源。例如:实例BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实例ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。原创 2022-09-29 11:18:30 · 889 阅读 · 0 评论 -
Spring事务问题,同一次请求中相同SQL查询结果不一致
上周同事让我帮他看个问题. 他说同一个SQL 两次执行后,查询结果不一致, 两次查询一次有记录一次没有记录原创 2022-09-25 16:44:17 · 2029 阅读 · 0 评论 -
SpringBoot 09 集成Spring Boot Admin实现监控
Spring Boot Admin能帮我们做什么以及使用方式和常见问题原创 2022-03-21 16:28:20 · 984 阅读 · 0 评论 -
找不到方法:ManagementServerProperties.getBasePath()Ljava/lang/String
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)。 UI是的AngularJs应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控项目场景:Spring Boot + Spring Boot Admin监控测试Springboot Admin Se...原创 2022-03-18 10:48:29 · 1650 阅读 · 0 评论 -
Spring 中的@Import注解分析
Spring提供的基于Java的配置允许编写注释,这可以降低配置的复杂性。像在Spring XML文件中使用< import/>元素来帮助模块化配置一样,@Import注释允许从另一个配置类加载@Bean定义原创 2022-03-15 14:16:05 · 795 阅读 · 0 评论 -
SpringBoot 08 集成swagger2简化API开发及问题
1.Swagger能做什么Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。Swagger 帮助用户、团队和企业简化API开发, 让部署管理和使用功能强大的 API 变得十分简单2.Swagger +Springboot示例1.创建Springboot项目,pom.xml中增加 sprin...原创 2022-03-11 19:06:43 · 984 阅读 · 1 评论 -
SpringBoot+Swagger2时Failed to start bean ‘documentationPluginsBootstrapper‘
项目场景:SpringBoot +Swagger2 测试时候启动报错SpringBoot 版本 : 2.6.2Swagger版本 :2.9.2问题描述启动SpringBoot的时候启动报错,日志中描述bean对象documentationPluginsBootstrapper执行start时候出现空指针异常,详细日志如下org.springframework.context.ApplicationContextException: Failed to start be...原创 2022-03-10 18:53:45 · 974 阅读 · 0 评论 -
SpringBoot 07 如何实现任务调度Scheduled及常见问题
定时调度是指在无人值守的时候,系统可以在某一时刻执行某些特定的功能而采用的一种机制。本文总结三种实现任务调度的方法原创 2022-02-26 13:45:31 · 1409 阅读 · 2 评论 -
SpringBoot 06 集成Nacos配置中心以及常见问题
1.为什么用NacosNacos 因其出色的的读写性能以及简单灵活的配置方式,被很多公司应用于配置管理.我们将Nacos当做配置服务器或者配置中心。Nacos还可以很方便的和Spring Boot集成,这也提高了其使用的频率2. Nacos Server使用如何搭建Nacos Server环境并启动Nacos Server用于测试, 请进入下方传送门:链接:Nacos服务设置访问http://127.0.0.1:8848/nacos创建测试所需配置用于下方测试names...原创 2022-02-17 19:11:02 · 2101 阅读 · 2 评论 -
SpringBoot 05 集成redis实现对象序列化缓存
测试:http://127.0.0.1:8002/login?username=zhangsanhttp://127.0.0.1:8002/get?userid=1原创 2022-02-09 18:46:28 · 1023 阅读 · 0 评论 -
SpringBoot 04 集成Flyway实现数据库版本控制
1. 为什么使用Flyway 最简单的一个项目是一个软件连接到一个数据库,但是大多数项目中我们不仅要处理我们开发环境的副本,还需要处理其他很多副本。例如:开发环境、测试环境、生产环境。想到数据库管理,我们立刻就能想到一系列问题如何快速收集执行脚本的清单 执行的脚本总要人工执行,是否可以通过机器执行 执行的脚本是否已经在数据库执行过 执行的脚本是否全部在数据库中执行过 执行的脚本如何回退 如何初始化一个空数据库实例 Flywa...原创 2022-01-28 15:22:28 · 3329 阅读 · 12 评论 -
SpringBoot 03 事件ApplicationEvent监听处理
事件(event)可以封装和传递监听器中要处理的参数,如对象或字符串,并作为监听器中监听的目标,一般是ApplicationEvent的子类事件发布者(publisher)事件发生的触发者。事件广播器(Multicaster)作为实际发布事件的委托,将所有事件多播给注册的监听器,实现让监听器忽略它们不感兴趣的事件监听器(listener)具体根据事件发生的业务处理模块,这里可以接收处理事件中封装的对象或字符串原创 2022-01-20 17:51:08 · 1359 阅读 · 0 评论 -
SpringBoot 02 外部配置文件applicatiion.properties
SpringBoot使用application.properties或者applicaiton.yaml文件作为全局配置文件,文件位置一般在src/main/resource目录下,使用Spring Initializer方式构建或者https://start.spring.io/构建Spring Boot项目后会在src/main/resource目录下自动创建一个名称为applicatiion.properties 文件 src ├─main │...原创 2022-01-18 19:22:12 · 685 阅读 · 0 评论 -
SpringBoot 01 快速入门
Spring Boot 使创建独立的生产级的基于Sping框架的应用程序更加容易,简单到你可以直接运行。它让开发人员不必为Spring的配置而苦恼,可全心投入到业务逻辑代码开发中,Spring Boot创建独立的Java应用程序可以使用java -jar或更传统的WAR部署来启动原创 2022-01-14 19:32:03 · 541 阅读 · 1 评论 -
Spring Cloud Stream 消息驱动快速入门
Spring Cloud Stream是一个用于构建与共享消息系统连接的高度可扩展的事件驱动微服务的框架。该框架提供了一个灵活的编程模型,模型建立在已经建立和熟悉的Spring习惯用法和最佳实践之上,包括对持久发布/订阅语义、消费者组和有状态分区的支持原创 2022-01-07 19:36:42 · 1843 阅读 · 0 评论 -
Spring Cloud Bus快速入门
Spring Cloud Bus消息总线支持向监听特定服务的所有节点发送消息,/bus/*执行器命名空间有一些HTTPendpoints,当前有两个端点, 一个是/bus/env 实现向每个节点的Spring环境发送键/值对 ,另一个是/bus/refresh 实现重新加载每个应用程序的配置,每一个应用程序都有一个服务标识,这个值一般是用冒号分割,这个值将会设置到spring.cloud.bus.id 上默认值是spring.application.name : server.port原创 2021-12-27 17:13:58 · 1616 阅读 · 0 评论 -
IllegalArgumentException: Could not resolve placeholder ‘from‘ in value “${from}“
学习Spring Cloud Config的时候出现的问题, 因此记录下问题希望帮助到有缘人Could not resolve placeholder 'from' in value "${from}"原创 2021-12-17 20:01:57 · 1739 阅读 · 0 评论 -
Spring Cloud Config快速入门
随着微服务系统的不断迭代,这些资源配置会越来月多, 整个微服务系统会成为一个网状结构,这个时候就要考虑整个微服务系统的扩展性、伸缩性、耦合性等等。其中一个很重要的环节就是配置管理的问题。原创 2021-12-17 19:54:44 · 1069 阅读 · 0 评论 -
Spring Cloud Zuul过滤器详解
Spring Cloud Zuul包含了对请求的路由和过滤两个功能,其中路由负责将请求转发到指定的微服务上, 过滤器功负责对请求的处理过程进行干预,能够在路由HTTP请求和响应的过程中执行一系列操作,例如检测等前面说到了过滤器有四个主要特征,继承ZuulFilter后都会重写其特征类型:通常定义路由流程中使用过滤器的阶段 (字符串) 执行顺序:定义多个过滤器的执行顺序 标准:执行过滤器所需要的条件 行为:过滤器满足条件的时候触发的行为操作Zuul 提供了一个框架来动态...原创 2021-12-13 12:05:12 · 991 阅读 · 1 评论 -
Spring Cloud Zuul 使用快速入门
随着微服务规模越来越大,微服务系统中会出现以下问题从运维角度看,客户端发送某个业务请求, 请求通过F5,Nginx 等设备的路由通过负载均衡分配后被转发到不同的服务实例上.因此运维人员需要维护这些服务列表, 当实例增减或者IP地址变动发生时,手工修改维护配置出错的概率会随着系统规模不断增大 从开发测试角度看,一般会在微服务的接口上增加权限校验机制,比如登录状态校验或者签名校验,随着微服务规模的扩大,这些校验逻辑的冗余变得越来越多,开发维护的难度越来越大,测试人员的测试负担也会越来越大1....原创 2021-12-03 19:07:40 · 1537 阅读 · 0 评论 -
Spring Cloud OpenFeign 使用
Feign是一个声明性web服务客户端,它使得编写web服务客户端变得更加容易,Spring Cloud Feign是基于Netflix Feign实现,整合了Spring Cloud Ribbon与Spring Cloud Hystrix,除了提供两者强大功能外,它还提供了声明式的Web服务客户端定义方式1.Feign和OpenFeign的区别是什么Feign是Spring Cloud组件中一个轻量级RESTful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用原创 2021-11-24 09:21:10 · 625 阅读 · 1 评论 -
Spring Cloud Feign启动Load balancer does not have available server for client分析
项目场景:Spring Cloud Feign 学习过程中遇到Feign访问的时候报错Load balancer does not have available server for client问题描述:完整报错日志如下path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: com.netflix.client.ClientException:原创 2021-11-17 19:26:45 · 8412 阅读 · 11 评论 -
Spring Cloud Feign 示例笔记
Feign是一个声明性web服务客户端,它使得编写web服务客户端变得更加容易,Spring Cloud Feign是基于Netflix Feign实现,整合了Spring Cloud Ribbon与Spring Cloud Hystrix,除了提供两者强大功能外,它还提供了声明式的Web服务客户端定义方式1.Feign和OpenFeign的区别是什么Feign是Spring Cloud组件中一个轻量级RESTful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用原创 2021-11-17 17:47:53 · 505 阅读 · 0 评论 -
Spring Cloud Turbine集群监控一直Loading问题
这是最近在 学习Spring Cloud按照书或者网上的例子敲示例遇到的问题,这个问题网上有很多答案,但是我遇到的问题和其他人不同, 如果你也遇到类似问题,希望下面的解决方法能帮助到你问题描述:搭建Spring Cloude Turbine集群监控参考代码:GitHub - PNZBEIJINGL/spring-cloud-lab服务 端口 eureka-peer 1000 Eureka服务注册中心 hystrix-dashboard ...原创 2021-11-11 18:37:20 · 1114 阅读 · 3 评论 -
Spring Cloud Hystrix断路器应用
Hystrix解决了什么问题 复杂分布式体系结构中,应用程序会有多个依赖,甚至几十个依赖。每一个依赖都可不免的会在某个时候失败,如果主机应用程序没有于这些外部故障隔离开,它就会被搞垮的风险。例如,对于一个依赖于30项服务的应用程序, 其中每项服务有99.99%的正常运行时间,那么正常运行时间就是99.99%的30次方,约等于99.7%。假设1年有10亿次请求,那么所有依赖都正常运行的时 0.3%失败就是3000000次。,如果每秒处理50个请求, 那么每个月失败请...原创 2021-11-10 13:21:12 · 656 阅读 · 0 评论 -
Spring Cloud Ribbon负载均衡策略详解
通过之前的文章可以知道, Ribbon负载均衡器选择服务实例的方式是通过“选择策略”实现的, Ribbon实现了很多种选择策略,UML静态类图如上图原创 2021-11-04 14:44:00 · 1816 阅读 · 0 评论 -
Spring Cloud Ribbon 源代码学习笔记
Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Riboon实现的。Ribbon是客户端负载均衡器,这有别语例如Nginx服务端负载均衡器。Ribbon本身提供了不通负载均衡策略使用不通的应用场景。/** * Annotation to mark a RestTemplate bean to be configured to use a LoadBalancerClient * @author Spencer Gibb */@原创 2021-11-02 19:33:24 · 830 阅读 · 2 评论 -
Spring Cloud Eureka Client源代码学习笔记
将一个Spring Boot应用注册到Eureka Server或者是从Eureka Server获取服务列表时,主要做两件事: 应用启动类配置 @EnableDiscoveryClient 注解并且在applicaiton.properties 中用eureka.client.serviceUrl.defaultZone参数指定服务注册中心的位置服务注册@EnableDiscoveryClient 注解从源码中可以看到,@EnableDiscoveryClient注解是一个@...原创 2021-10-27 19:03:49 · 521 阅读 · 0 评论 -
Spring Cloud Eureka 概念与示例
Spring Cloud Eureka 是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。Spring Cloud通过为Eureka增加了Spring Bot风格的自动化配置。服务治理是微服务架构中最为核心和基础的模块,主要用来实现微服务实例自动化注册与发现。注册服务:就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上 服务发现:就是新注册的这个服务模块能够及时的原创 2021-10-25 19:19:27 · 762 阅读 · 0 评论 -
Spring Session原理以及源码分析
技术背景 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应 HTTP协议是无状态的协议,一次浏览器和服务器的交互过程就是一次会话,对话完成后,这次会话就结束了,服务器端并不能记住这个人,下次再对话时,服务器端并不知道是上一次的这个人,所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是Session...原创 2021-07-14 19:39:22 · 1086 阅读 · 0 评论 -
SpingBoot + Spring Session 示例
Spring Session 让支持集群会话很容易,是一个不需要依赖特定应用程序的解决方案,Spring Session Data Redis提供SessionRepository和ReactiveSessionRepository实现,Spring Session提供了以下集成原创 2021-07-09 18:12:54 · 643 阅读 · 0 评论 -
Spring Cloud +Nacos 配置中心原理分析
Nacos 客户端定时从 nacos server 拉取更新,如果有更新,则通过事件把新值注入到属性中。新增配置命名空间-新命名空间 创建一个叫 Nacos测试空间,空间名称ID=nacos-test 配置列表-Nacos测试空间:右侧加号增加配置nacos-demo.yamlSpring Boot 施工中Spring Cloud使用@RefreshScope + @Value 获取配置1. @Value获取最新值一定要加Spr...原创 2021-05-19 18:37:33 · 3500 阅读 · 7 评论 -
Spring Cloud @RefreshScope 自动刷新Bean
要实现自动更新,那么需要当Bean更新的时获取到更新后的bean,那么这个Bean需要懒加载,即使用的时候再加载 当Bean更新的时候获取最新的Bean,那么这个Bean需要重复加载,因此需要销毁原来生成的Bean,根据最新的信息创建新的BeanSpringCloud 使用@RefreshScope 来解决这个问题 以 @RefreshScope 声明的Bean将会被 org.springframework.cloud.context.scope.refresh.RefreshScope 代理...原创 2021-05-07 14:48:48 · 5663 阅读 · 0 评论 -
Spring 调度处理,异常被吃掉问题
Spring调度,异常被吃掉问题原创 2020-12-08 18:15:31 · 1658 阅读 · 0 评论