![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
文章平均质量分 75
影࿐ེ
坚持是一种伟大的力量
展开
-
接口多实现
接口 多实现 动态原创 2022-12-08 15:37:47 · 6148 阅读 · 0 评论 -
SpringBoot 整合WebFlux
webflux 异步框架原创 2022-11-01 18:12:42 · 5243 阅读 · 0 评论 -
Spring中请求如何映射到达controller具体的方法
spring请求如何映射到controller的方法 handler原创 2022-10-14 11:11:38 · 1775 阅读 · 2 评论 -
SpringBoot application.properties 详解
springboot application.properties原创 2022-09-20 20:59:43 · 7301 阅读 · 0 评论 -
Spring内置事件监听器
Spring内置监听器原创 2022-07-04 11:20:01 · 2044 阅读 · 0 评论 -
SpringBoot中的延迟加载
延迟加载原创 2022-06-09 17:22:20 · 3023 阅读 · 3 评论 -
能够注入Bean的Filter
bean、filter原创 2022-04-26 14:25:40 · 1684 阅读 · 0 评论 -
异步请求和异步调用
异步请求与同步请求我们先通过一张图来区分一下异步请求和同步请求的区别:在上图中有三个角色:客户端、Web容器和业务处理线程。两个流程中客户端对Web容器的请求,都是同步的。因为它们在请求客户端时都处于阻塞等待状态,并没有进行异步处理。在Web容器部分,第一个流程采用同步请求,第二个流程采用异步回调的形式。通过异步处理,可以先释放容器分配给请求的线程与相关资源,减轻系统负担,从而增加了服务器对客户端请求的吞吐量。但并发请求量较大时,通常会通过负载均衡的方案来解决,而不是异步。//原创 2021-03-22 11:08:24 · 186 阅读 · 0 评论 -
SpringBoot读取配置文件
核心配置文件核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单方式一:使用@Value方式(常用)@Value("${ccb.student.name}")private String name;方式2:使用Environment方式@Autowiredprivate Environment env;env.getProperty("ccb.stud..原创 2021-01-22 09:14:29 · 102 阅读 · 0 评论 -
分布式事务解决方案
如果一个事务调用了不同服务器上的操作,那么它就成为了一个分布式事务。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。当我们的单个数据库的性能产生瓶颈的时候,我们可能会对数据库进行分区,这里所说的分区指的是物理分区,分区之后可能不同的库就处于不同的服务器上了,这个时候单个数据库的ACID已经不能适应这种情况了,而在这种ACID的集群环境下,再想保证集群的ACID几乎是很难达到,或者即使能达到那么效率和性能会大幅下降,最为关键的是再很难扩展新的分区了,这个时候如果再追求集群的ACID会导致我.原创 2021-01-20 22:25:57 · 104 阅读 · 0 评论 -
负载均衡
负载均衡是指服务器性能达到极限时通过服务器集群来横向增加系统的吞吐量和性能。一、服务器负载均衡 服务器负载均衡就是我们平时所说的负载均衡,是指在服务器上游做服务请求分发,常用的方式有:(1)DNS域名解析负载均衡:假设我们的域名指向了多个IP地址,当一个域名请求过来时,DNS服务器进行域名解析将域名转换为IP地址,在1:N的映射转换中实现负载均衡。DNS服务器提供简单的负载均衡算法,但当其中某台服务器出现故障时,通知DNS服务器移除当前故障IP (2)反向代理负载均衡:反向代...原创 2021-01-20 09:48:56 · 184 阅读 · 0 评论 -
SpringBoot热加载
使用SpringBoot开发的时候,修改完程序之后,需要手动点击重启,才能让修改生效,比较麻烦,也占用了更多的时间。其实可以通过一些插件,实现修改之后的热加载,并且只加载修改部分,从而也提高了效率。方式一:使用JRebel//todo方式二:使用spring-boot-devtools//todo方式三:使用springloaded//todo...原创 2021-01-19 11:43:58 · 4907 阅读 · 0 评论 -
SpringBoot工程打包jar/war
一、生成可依赖jar包 (1)springboot工程默认生成jar包,也可以显示地在pom.xml中配置:<packaging>jar</packaging> (2)在pom.xml中使用: <build><plugins><plugin> <groupId>org.apac...原创 2021-01-10 11:11:33 · 92 阅读 · 0 评论 -
SpringBoot返回json和xml
多数情况都是返回json数据,有些情况接口需要返回的是xml数据。如果想要返回xml数据,只需要如下操作:<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId></dependency>import org.spring.spr...原创 2021-01-09 22:30:18 · 536 阅读 · 0 评论 -
微服务部署(平滑过度)
在项目迭代的过程中,不可避免需要“上线”。上线就需要部署,或者重新部署;部署就意味着有修改;有修改意味着有风险。 目前有很多部署的技术,有的简单,有的复杂,有的得停机,有的不需要停机即可完成部署。 常用的部署方案: 一、蓝绿部署 蓝绿部署是不停老版本,部署新版本然后进行测试,确认ok,将流量切换到新版本,然后老版本也升级到新版本。 1、特点 蓝绿部署无需停机,并且风向较小 2、部署过程...原创 2021-01-09 10:00:20 · 1165 阅读 · 2 评论 -
API - 文档管理工具
1、eolinker2、Yapi3、postman4、swagger原创 2021-01-09 09:58:31 · 131 阅读 · 2 评论 -
SpringBoot 整合Druid数据库连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池能明显提高对数据库操作的性能。在Java应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。Spring Boot默认提供了若干种可用的连接池,默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource。而Druid是阿里系提供的一个开源连原创 2021-01-09 09:56:27 · 230 阅读 · 0 评论 -
SpringBoot 引入第三方ja包中的bean
为什么Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar普通的 jar 不可以通过java -jar xxx.jar命令执行,普通的jar主要是被其他应用依赖,Spring Boot打成的jar可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边...原创 2021-01-09 09:38:49 · 5360 阅读 · 0 评论 -
SpringBoot 整合SpringCloud组件Eureka服务注册、服务发现 、网关
服务发现组件是微服务架构中非常关键的一个组件。SpringCloud 提供的服务发现有多种,如Eureka,Consul和Zookeeper等。本篇介绍的是Eureka的使用。服务发现简介服务提供者,服务消费者,服务发现组件这三者之间的关系大致如下:服务提供者与服务消费者都需要向服务发现组件进行注册,服务消费者从服务发现组件中获取服务提供者的信息(如名称、地址、端口等)。在服务发现组件注册的微服务需要通过心跳机制来保持连接状态并更新注册信息,当服务发现组件长时间无法与某个微服务实例进行通信.原创 2021-01-09 09:38:00 · 711 阅读 · 0 评论 -
SpringBoot 整合限流、熔断和降级
一、基于Spring cloud hystrix二、基于阿里巴巴sential在之前的《使用Sentinel实现接口限流》一文中,我们仅依靠引入Spring Cloud Alibaba对Sentinel的整合封装spring-cloud-starter-alibaba-sentinel,就完成了对所有Spring MVC接口的限流控制。然而,在实际应用过程中,我们可能需要限流的层面不仅限于接口。可能对于某个方法的调用限流,对于某个外部资源的调用限流等都希望做到控制。呢么,这个时候我们就不得不手工定义.原创 2021-01-09 09:33:03 · 4223 阅读 · 0 评论 -
SpringBoot 整合logback日志配置
前言 java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)。其中性能最高的应该使 logback 了,而且 springboot 默认使用的也是 logback 日志,所以本篇将会详细的讲解 logback 的日志配置方案。简单使用 如果无需复杂的日志配置,执行简单设置日志打印级别,打印方式可直接再 application.yml (applicat.原创 2021-01-09 09:38:21 · 1066 阅读 · 0 评论 -
SpringBoot 整合配置中心
配置中心的技术选型的必要性:· 工作需要,要做一款好的开源产品,去试用提供相似功能的产品是一个必要的环节,以找出优势,弥补不足· 用户所需,对于提供相似功能的产品进行选型对比,是引入某个开源项目必须要做的事,如果能有一份参考,那么势必能提供一些帮助(建议:即便有一份可参考的材料,技术选型的工作仍需要亲力亲为,实际的业务场景和资源配置才是技术选型最重要的依据)· 微服务配置中心是一个微服务组件,而不是一个大的框架。一、为什么需要配置中心 (1)配置实时生效:传统的静态配置方式要想修...原创 2021-01-09 09:25:13 · 1285 阅读 · 0 评论 -
SpringBoot 整合Sleuth和Zipkin构建链路追踪系统
随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文,使用最为广泛的开源实现是 Twitter 的 Zipkin,为了实现平台无关、厂商无关的分布式服务跟踪,CNCF 发布了布式服务跟踪标准 Open Tracing。国内,淘.原创 2021-01-09 09:23:03 · 821 阅读 · 0 评论 -
SpringBoot 整合JWT
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。JWT请求流程 用户使用账号和面发出post请求; 服务器使用私钥创建一个jwt; 服务器返回这个jwt给浏览器; 浏览器将该jwt串在请求原创 2021-01-07 22:21:20 · 209 阅读 · 0 评论 -
SpringBoot 整合gRPC
gRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架。gRPC 的主要优点是:现代高性能轻量级 RPC 框架。 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。 可用于多种语言的工具,以生成强类型服务器和客户端。 支持客户端、服务器和双向流式处理调用。 使用 Protobuf 二进制序列化减少对网络的使用。这些优点使 gRPC 适用于:效率至关重要的轻量级微服务。 需要多种语言用于开发的 Polyglot 系统。 需要处理流式处理请求或响应的点对点实时.原创 2021-01-07 22:19:37 · 1145 阅读 · 0 评论 -
SpringBoot 自定义Starter
starter 兼容springboot springmvc原创 2021-01-07 22:17:40 · 130 阅读 · 0 评论 -
SpringBoot 整合权限管理Apache的Shiro(认证、授权)
什么是权限管理 权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。根据官方的介绍,shiro提供了2个主要的功能“登录身份认证”、“访问授权”、其他的功能都是给Shiro打辅助的,比如Session管理,加密处理,缓存功能,记住我等。shiro主要有三大功能模块:Subj原创 2021-01-07 22:12:06 · 1377 阅读 · 0 评论 -
SpringBoot 整合oauth2实现授权第三方应用
什么是OAuth2OAuth(open authorization开放授权)是一个开放标准,允许用户授权第三方应用访问他们服务器资源,而不需要将用户名和密码提供给第三方应用。OAuth2.0是OAuth协议的延续版本,但是不向后兼容OAuth1.0,即完全废止了OAuth1.0。快递员问题我住在一个大型的居民小区小区有门禁系统。小区进入小区的时候需要输入密码。我经常网购和点外卖,每天都有快递员来送货,我必须找到一个办法,让快递员通过门禁系统,进入小区如果我把自己的密码告诉快递员,他就拥有了原创 2021-01-07 16:04:46 · 1649 阅读 · 0 评论 -
SpringBoot 整合SpringCloud组件gateway/zuul网关
Spring Boot 是构建单个微服务应用的理想选择,但是我们还需要以某种方式将它们互相联系起来。这就是 Spring Cloud Netflix 所要解决的问题。Netflix 它提供了各种组件,比如:Eureka服务发现与Ribbon客户端负载均衡的结合,为内部“微服务”提供通信支持。本章介绍如何通过使用 Netflix Zuul 实现一个微服务API Gateway 来实现简单代理转发和过滤器功能。API Gateway 是随着微服务(Microservice)这个概念一起兴起的一种架构模式,它原创 2021-01-07 09:56:10 · 1056 阅读 · 0 评论 -
SpringBoot 整合ElasticSearch全文检索
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,原创 2021-01-07 09:54:35 · 3012 阅读 · 1 评论 -
SpringBoot 整合mycat分库、分表
背景系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。其前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的原创 2021-01-07 09:49:13 · 1810 阅读 · 1 评论 -
SpringBoot 整合redis实现缓存
一、1、引入maven依赖 org.springframework.bootspring-boot-starter-data-redis2.2.2.RELEASE2、配置application.properties# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=127.0.0.1# Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)原创 2021-01-07 09:46:39 · 251 阅读 · 0 评论 -
SpringBoot 整合mybatis配置多数据源
注意事项:重点:多数据源配置时,要指定一个数据源为主数据源并使用@Primary注解@MapperScan(basePackages)指定mapper文件的位置和SqlSessionFactory中指定xml文件的位置dataSource配置顺序:DataSource(数据源),SqlSessionFactory(session工厂),DataSourceTransactionManager(数据库事务),SqlSessionTemplate(操作数据库方法的封装类)实例:1、依赖2、配置3、原创 2021-01-07 09:43:25 · 200 阅读 · 0 评论 -
SpringBoot 整合admin实现微服务监控
Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的leve...原创 2021-01-07 09:42:18 · 289 阅读 · 0 评论 -
SpringBoot 整合@Async实现异步
什么是异步调用?异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。如何实现异步调用?多线程,这是很多人第一眼想到的关键词,没错,多线程就是一种实现异步调用的方式。在非spring目项目中我们要实现异步调用的就是使用多线程方式,可以自己实现Runable接口或者集成Thread类,或者使用jdk1.5以上提供了的Executors线程池。StrngBoot中则提供了很方便的方式执行异步调用:1、启原创 2021-01-07 09:41:13 · 536 阅读 · 0 评论 -
SpringBoot 整合RabbitMQ
1、安装rabbitmq:brew install rabbitmq2、进入目录,启动mq查找目录:find / -name rabbitmq启动MQ:sudo ./rabbitmq-server start3、启动之后,进入控制台: http://localhost:15672/默认的用户名和密码:guest,guest端口:5672在程序中使用端口:15672用于登录控制台在这个界面里面我们可以做些什么?可以手动创建虚拟host,创建用户,分配权限,创建交换机,创建队列等等,还有查看原创 2021-01-07 09:37:13 · 155 阅读 · 0 评论 -
SpringBoot 整合Dubbo+zookeeper实现RPC
Dubbo 的RPC 调用流程主要涉及到4个模块:1、Registry:服务注册,我们一般会采取Zookeeper 作为我们的注册中心2、Provider:服务提供者(生产者),提供具体的服务实现3、Consumer:消费者,从注册中心中订阅服务4、Monitor:监控中心,RPC调用次数和调用时间监控从上图中我们可以看出RPC 服务调用的过程主要为:1、生产者发布服务到服务注册中心2、消费者在服务注册中心中订阅服务3、消费者调用已注册的服务在dubbo RPC中,同时支持多种序列化方式,原创 2021-01-07 09:33:43 · 313 阅读 · 0 评论 -
SpringBoot 详解
SpringBoot的两大核心机制起步依赖:起步依赖的本质是一个Maven项目对象模型,定义了对其他库的传递依赖,这些jar集中在一起支持某项功能。SpringBoot官方提供的起步依赖和SpringBoot版本紧密相连,为我们传递的第三方依赖都是经过足够测试后敲定下来最合适的版本自动装配:简单点讲,Spring会试图在你的classpath下找到所有配置的Bean然后进行装配。当然装配Bean时,并根据规则进行初始化操作,代码中就可以直接引入使用了SpringBoot两大核心特性:1、起步原创 2021-01-06 23:25:58 · 1801 阅读 · 0 评论 -
SpringBoot 性能提升
1、服务器选择(undertow、jetty、tomcat)2、缓存(Redis)3、异步(@Async、CompletableFuture.runAsync)4、消息队列(RabbitMQ )5、数据库(集群、分库、分表,常用得分中间件:mycat或者)6、部署运维(nginx多机部署负载均衡)7、后台代码逻辑8、业务拆分...原创 2021-01-06 23:20:49 · 325 阅读 · 0 评论