Spring Boot中提供了一系列的注解比如@ImportAutoConfiguration和@EnableAutoConfiguration,它们最终都组合了@Import注解,那么,它们之间有什么区别呢? @ImportAutoConfiguration是否可以替代@Import注解?@ImportAutoConfiguration和@EnableAutoConfiguration是否效果相同? 从根本上来说,@ImportAutoConfiguration是@Import的增强,限制了它使用的特定范围。 使…

2021年1月26日 0条评论 604点热度 2人点赞 李锋镝 阅读全文

引入SpringBoot本来就支持REST服务,因此在SpringBoot项目之间经常需要通过REST的形式来相互调用。本文以具体的实例带大家了解一下SpringBoot中怎么使用RestTemplate进行接口调用。同时,会讲解部分相关源码。 RestTemplate的实例化 RestTemplate实例通常需要自己进行定制,SpringBoot相关的自动配置bean。但是,SpringBoot提供了自动配置的RestTemplateBuilder,可以用它来创建RestTemplate实例。 那么,Spring…

2021年1月19日 0条评论 652点热度 0人点赞 李锋镝 阅读全文

最近项目中使用SpringBoot集成Redis,踩到了一个坑:从Redis中获取数据为null,但实际上Redis中是存在对应的数据的。是什么原因导致此坑的呢? 本文就带大家从SpringBoot集成Redis、所踩的坑以及自动配置源码分析来学习一下SpringBoot中如何正确的使用Redis。 SpringBoot集成Redis 在SpringBoot项目中只需在pom文件中引入Redis对应的starter,配置Redis连接信息即可进行使用了。pom依赖引入: <dependency> <…

2021年1月19日 0条评论 635点热度 0人点赞 李锋镝 阅读全文

@Autowired和@Resource都可以用于来实现依赖注入,但前者是Spring提供的,后者为JDK(JSR-250标准)自带的。阿里Java开发规范中推荐使用@Resource。但大多数人往往并没有留意为何如此,甚至代码中的提示信息可能都没留意去看。 本文就带大家彻底了解一下这两个注解的功能、运用场景及区别。 IDE的提示 如果在项目中使用@Autowired进行注入,如下代码: @RestController public class InjectController { @Autowired priva…

2021年1月15日 0条评论 591点热度 2人点赞 李锋镝 阅读全文

游标查询(scroll)简介 scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。 游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。 启用游标查询可以通过在查询的时候设置参数 scroll 的值为我们期望的游标查询的过期时间。 游标查询的过期时间会在每次做查询的时候刷新,所以这个时间只需要足够处理当前批的结果就可以了,而不是处理查询结果的所有…

2020年10月16日 0条评论 660点热度 0人点赞 李锋镝 阅读全文

背景 作为网关,有些时候可能报文的结构并不符合前端或者某些服务的需求,或者因为某些原因,其他服务修改报文结构特别麻烦、或者需要修改的地方特别多,这个时候就需要走网关单独转换一次。 实现 话不多说,直接上代码。 首先,我们定义好配置: package com.lifengdi.gateway.properties.entity; import lombok.Data; import org.springframework.util.CollectionUtils; import java.util.*; /** * …

2020年7月13日 0条评论 634点热度 0人点赞 李锋镝 阅读全文

背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docker版本:1.13.1 k8s版本:1.9.8 使用yum install jenkins方式安装jenkins。 俺的Jenkins只部署了一台机器。 错误1 使用git branch: "$brans", credentialsId: 'platform-jenkins', u…

2020年4月8日 0条评论 653点热度 0人点赞 李锋镝 阅读全文

作为网关,日志记录是必不可少的功能,可以在网关出增加requestId来查询整个请求链的调用执行情况等等。 打印请求日志 打印请求日志最重要的就是打印请求参数这些东西,不过RequestBody通常情况下在被读取一次之后就会失效,这样的话,下游的服务就不能正常获取到请求参数了。所以我们需要重写下请求体。 具体方法呢有很多,这里说一下我用的两种: 第一种 代码如下: package com.lifengdi.gateway.filter; import com.lifengdi.gateway.constant.He…

2020年3月19日 4条评论 700点热度 1人点赞 李锋镝 阅读全文

新建Spring Boot项目 怎么新建Spring Boot项目这里不再具体赘述,不会的可以翻看下之前的博客或者直接百度。这里直接贴出对应的pom文件。 pom依赖如下: 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.5.RELEASE com.lifengdi gateway 0.0.1-SNAPSHOT gateway Demo project for Spring Boot 1.8 Hoxton.SR3 org.springfra…

2020年3月18日 0条评论 632点热度 0人点赞 李锋镝 阅读全文

SpringBoot启动概述(SpringBoot2.1.7) 实例化SpringApplication 推断web应用的类型(webApplicationType) 初始化ApplicationContextInitializer:通过ClassLoader.getResources加载META-INF/spring.factories路径下的文件信息,从中找key为ApplicationContextInitializer.class的对应类,并实例化 读取META-INF/spring.factories,并…

2020年1月10日 0条评论 625点热度 0人点赞 李锋镝 阅读全文
12