2021
03-05
03-05
如何手写一个Spring Boot Starter
何为Starter?想必大家都使用过SpringBoot,在SpringBoot项目中,使用最多的无非就是各种各样的Starter了。那何为Starter呢?你可以理解为一个可拔插式的插件(组件)。或者理解为场景启动器。通过Starter,能够简化以前繁杂的配置,无需过多的配置和依赖,它会帮你合并依赖,并且将其统一集成到一个Starter中,我们只需在Maven或Gradle中引入Starter依赖即可。SpringBoot会自动扫描需要加载的信息并启动相应的...
继续阅读 >
ribbon简介Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出LoadBalancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。ribion=负载均衡+重试ribbon...
Hystrix概述Hystrix:断路器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。hystrix可以实现降级和熔断:降级调用远程服务失败(宕机、500错、超时),可以降级执行当前服务中的一段代码,向客户端返回结果快速失败熔断当访问量过大,出现大量失败,可以做过热保护,断开远程服务不再调用限流防止故障传播、雪崩效应在微服务系统中,服务之间进行依赖,避免有调用其中服务...
将java对象转换为json对象,市面上有很多第三方jar包,如下:jackson(最常用)<!--https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.11.2</version></dependency>gson<!--https://mvnrepository.com/artifact/com.google.code.gson/gson--><dependency><groupId>com...
为什么要用ELKELK实际上是三个工具,Elastricsearch+Logstash+Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析简单画了一下架构图在环境配置中,主要介绍Mac和Linux配置,Windows系统大致相同,当然,前提是大家都...
介绍JSR-380是J2EE的一个规范,用于校验实体属性,它是JSR-303的升级版,在SpringBoot中可以基于它优雅实现参数校验。<!--more-->示例在没有使用JSR-380之前,我们一般都会将参数校验硬编码在controller类中,示例:publicResultadd(@RequestBodyUseruser){if(StringUtils.isBlank(user.getName())){returnResult.error("用户名不能为空");}//...}而使用JSR-380只需要通过添加对应的注解即可实现校...
在项目里,我需要做一个SpringBoot结合Thymeleaf前端模版,结合JPA实现分页的演示效果。做的时候发现有些问题,也查了现有网上的不少文档,发现能全栈实现的不多,所以这里我就把我的做法,全部代码和步骤贴出来供大家参考。1创建项目,用pom.xml引入依赖这里将创建名为ThymeleafWithDB的Maven,在pom.xml里引入如下的依赖包。<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>sp...