Spring Boot
春秋战国程序猿
仓廪实而知礼节,衣食足而知荣辱
展开
-
SpringBoot Actuator端点的实现原理【概括整理】
SpringBoot Actuator端点的实现原理【概括整理】版本:spring-boot-actuator-2.2.6.RELEASE概括起来,SpringBoot Actuator的实现原理如下1,Endpoint Bean@Endpoint标注的class是一个bean,是SpringBoot Actuator功能的具体的实现。 比如/actuator/beans端点对应的实现类是BeansEndpoint.class2,注入Endpoint Bean到...原创 2020-12-03 15:47:39 · 2597 阅读 · 4 评论 -
如何把项目打jar包,然后暴露接口给第三方应用提供服务【实战讲解】
如何把项目打jar包,然后暴露接口给第三方应用提供服务【实战讲解】下面这个例子,是我在开源项目CR949中使用到的部分代码,作为讲解,发布到这里。jar包中的controller,如何对外暴露接口。这样一个场景:比如,我去gitee上面,下载一个项目,打成jar包。现在呢,我想把这个jar中的一个接口暴露出来,这样我本地项目启动以后,我就可以直接访问这个接口了。例如我们的项目启动时,可以从控制台日志看到swagger2的/v2/api-docs接口注入到HandlerMapping的过...原创 2020-12-02 13:53:16 · 7567 阅读 · 2 评论 -
Swagger2的/v2/api-docs接口是如何对第三方项目暴露的【实现原理】
Swagger2的/v2/api-docs接口是如何对第三方项目暴露的呢?也就是说jar包中如何暴露接口给第三方应用?答案是:HandlerMappingswagger2实现了自己的HandlerMapping,在实现类PropertySourcedRequestMappingHandlerMapping中,把/v2/api-docs接口保存到了handlerMethods集合。然后提供了访问/v2/api-docs接口的方法lookupHandlerMethod(String urlPath,原创 2020-12-02 13:17:49 · 13176 阅读 · 0 评论 -
Spring boot注入RestTemplate实例的2种方式
RestTemplate是我们使用的比较多的模板,用来发送http请求。大多数情况下,需要我们自己注入到Spring IOC容器。对于低版本的spring boot,比如spring boot 1.3.7,是不支持RestTemplateBuilder创建RestTemplate实例的。怎么办呢,如下:@Beanpublic RestTemplate restTemplate() { return new RestTemplate();}如果是spring boo...原创 2020-12-02 09:46:39 · 4966 阅读 · 0 评论 -
spring boot 1.3.7版本和spring boot 2.2.6版本获取端口的2种方式
spring boot 1.3.7版本,直接从environment中获取端口,这种情况下,不管是否修改默认端口,都可以获取到。package com.cr949.auto.docs.config;import com.cr949.auto.docs.constants.Constants;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;...原创 2020-12-01 15:05:53 · 376 阅读 · 0 评论 -
Spring Cloud如何优雅打印日志:slf4j+logback
最近在对项目的日志进行优化,主要是如何减少不必要的日志输出,如何优化日志输出的性能,以及当前code中,一些不规范的日志输出代码的优化。基于此,对java日志进行了一个系统的梳理。今天这里,主要分享一个点,干货!具体的理论就不再重复搬运了,大家可以自行搜索脑补。Spring Cloud + Slf4j + Logback 架构打印日志的正确姿势import lombok.ext...原创 2020-03-30 16:36:21 · 4420 阅读 · 2 评论 -
Spring Boot支持的配置方式有哪些(深度解析)
Spring Boot支持的配置方式有哪些(深度解析)有本书上总结了一下,大概有9种配置方式,当然还有其他方式,这里不再列举。并且这些配置方式是有优先级的,如果不同的配置方式都配置了同一个配置项,那么优先级高的胜出。下面我们来具体看。一,Spring Boot支持的配置方式Spring Boot配置的核心类是PropertySource<T>,...原创 2019-10-18 18:00:53 · 1089 阅读 · 0 评论 -
ComponentScan注解的扫描范围及源码解析
ComponentScan注解的扫描范围及源码解析一,ComponentScan注解的默认扫描范围ComponentScan注解的默认扫描范围是启动程序XxxApplication. java所在目录及其下的所有子包。为了方便理解,我们看一下下面这个图片。这个项目中的启动类是:SpringbootApplication.java该启动类所在的目录是:spring...原创 2019-06-20 14:42:54 · 6948 阅读 · 0 评论