retrofit-spring-boot-starter实现了Retrofit与spring-boot框架快速整合,并且支持了部分功能增强,从而极大的简化spring-boot项目下http接口调用开发...如果你在spring-boot项目里面使用过mybatis,相信你对这种使用方式会更加熟悉。 接下来我们继续介绍一下retrofit-spring-boot-starter更高级一点的功能。...当然,我们也可以在配置文件中配置多个自定义的连接池,然后通过@RetrofitClient的poolName属性来指定使用。...如果需要使用其它序列化方式,在项目中引入对应的依赖,再把对应的ConverterFactory配置成spring的bean即可。...在公众号菜单中可自行获取专属架构视频资料,包括不限于 java架构、python系列、人工智能系列、架构系列,以及最新面试、小程序、大前端均无私奉献,你会感谢我的哈
在Spring Boot项目中我们可以通过RestControllerAdvice配合实现ResponseBodyAdvice接口来保证Spring MVC接口具有统一的返回格式,以保证前端同学能够封装统一的数据接收工具...但是很多网上的文章并没有对实际开发中的细节作出更多的讲解。今天胖哥就来分享一下我的一些细节处理,也算作一个总结。...这是因为当我们的Spring MVC接口返回数据时,会根据Content-Type来选择一个HttpMessageConverter来处理,而字符串在不声明Content-Type的情况下优先使用StringHttpMessageConverter...解决方法为,将Spring IoC中的ObjectMapper注入到MappingJackson2HttpMessageConverter中去。...Boot中统一返回体的一些细节问题进行了分享,希望能够帮助你解决一些实际开发中遇到的同样问题。
一、背景 官方提供的spring boot starter的配置项,我们用IDE配置的时候一般都有自动提示的,如下图所示 而我们自己自定义的配置却没有,对开发非常不友好容易打错配置,那这个是怎样实现的呢...二、提示原理 IDE是通过读取配置信息的元数据而实现自动提示的,而元数据在目录META-INF中的spring-configuration-metadata.json 或者 additional-spring-configuration-metadata.json...三、实现自动提示 以我这个自己开发的starter中的自定义配置文件为例,如果自己手动创建这些元数据的话工作量比较大,使用IDEA的话有自动生成功能 3.1....引入依赖spring-boot-configuration-processor 在zlt-swagger2-spring-boot-starter工程中添加以下jar包 ...重新编译项目 项目在重新编译后就会自动生成spring-configuration-metadata.json文件 四、测试 自定义的swagger配置已经能自动提示了 参考资料 https:/
写在前面 由于在更新其他专题的文章,Spring系列文章有很长一段时间没有更新了,很多小伙伴都在公众号后台留言或者直接私信我微信催更Spring系列文章。 看来是要继续更新Spring文章了。...想来想去,写一篇关于Spring中注解相关的文章吧,因为之前更新Spring系列的文章一直也是在更新Spring注解驱动开发。...没有看过Spring其他文章的小伙伴,可以到【冰河技术】公号的【Spring系列】专题中进行阅读,后面我也会把【冰河技术】公号的各专题文章进行汇总整理,分享给各位小伙伴。...不指定@Scope 在不指定@Scope的情况下,所有的bean都是单实例的bean,而且是饿汉加载(容器启动实例就创建好了) @Bean public Person person() { return...实现 通过Spring的BeanPostProcessor的 bean的后置处理器会拦截所有bean创建过程 postProcessBeforeInitialization 在init方法之前调用 postProcessAfterInitialization
第一次踩坑 事情是这样的,大概在今年 6 月初的时候,我在项目中使用到了 Session 共享,当时采用的方案就是 Redis+Spring Session。...因为在 Spring Boot 中整合 Spring Session 是一个非常简单的操作,就几行 Redis 的配置而已,我在确认了代码没问题之后,很快想到了可能是版本问题,因为当时 Spring Boot2.1.5...第二次踩坑 前两天我在给星球上的小伙伴录制 Spring Boot 视频的时候,采用了 Spring Boot 最新版 2.1.7,也是 Spring Session,但是在创建项目的时候,忘记添加 Spring...于是我去试了 Spring Boot2.1.4、Spring Boot2.1.6 发现都没有问题,在使用 Spring Session 的时候都不需要添加 Spring Security 依赖,只有 Spring...在 Spring Boot2.1.5 的 org.springframework.boot.autoconfigure.session.SessionAutoConfiguration 类中,我看到如下源码
本文推荐一些使用Spring Boot开发的免费开源项目,可用于学习目的,能够查看源代码并获得真实项目的实践经验。...Sagan项目是开源的,可以在GitHub存储库中找到 https://github.com/RameshMF/sagan 我强烈建议这个项目,你将学习有关Spring框架生态系统,Elasticsearch...,Gradle以及百万美元UI内容的所有内容。...Java博客聚合器 Java Blog Aggregator是基于Spring启动MVC的Web应用程序,用于通过RSS feed聚合顶级Java博客,文章和帖子。...所有这些都是可独立部署的应用程序,围绕某些业务领域进行组织。 5. Zipkin Zipkin是一种分布式跟踪系统。它有助于收集解决微服务架构中的延迟问题所需的时序数据。它管理这些数据的收集和查找。
今天启动我的spring-boot项目时报了如下的错误: *************************** APPLICATION FAILED TO START ****************...知道了原因,org.springframework.boot:spring-boot-autoconfigure:2.5.6包中的GsonAutoConfiguration类中引用了com.google.gson.GsonBuilder.setLenient...我的项目中引用的org.apache.phoenix:phoenix-core:4.14.0-cdh5.14.2库也依赖gson 2.2.4库,替换了spring-boot-autoconfigure中引用的...知道了原因,就知道怎么解决了:就要在项目强制使用spring-boot依赖的高版本。...如上面stackoverflow的帖子中的解决办法 ,在项目的pom.xml中添加gson依赖,使高版本生效 com.google.code.gson
前言 参数验证很重要,是平时开发环节中不可少的一部分,但是我想很多后端同事会偷懒,干脆不错,这样很可能给系统的稳定性和安全性带来严重的危害。...那么在Spring Boot应用中如何做好参数校验工作呢,本文提供了10个小技巧,你知道几个呢?...假设我们有一个应用程序,用户可以在其中创建帖子。每个帖子都应该有一个标题和一个正文,并且标题在所有帖子中应该是唯一的。...定义了自定义验证注释和验证器类后,我们现在可以使用它来验证 Spring Boot 应用程序中的帖子标题: public class Post { @UniqueTitle private String...在处理程序方法中,我们创建了一个 Map 对象来保存错误响应的详细信息,包括时间戳、HTTP 状态代码和错误消息列表。
核心技术栈 后端: Spring Spring Boot 2.1.5 RELEASE Spring MVC ORM:MyBatis 数据库:MySQL 5.7 分布式缓存:Redis 本地缓存:Caffeine...、评论/回复点赞 第 1 次点赞,第 2 次取消点赞 首页统计帖子的点赞数量 详情页统计帖子和评论/回复的点赞数量 详情页显示当前登录用户的点赞状态(赞过了则显示已赞) 统计我的获赞数量 权限管理(Spring...Redis(1 小时) 用户登出,将凭证状态设为无效,并更新 Redis 中该用户的登录凭证信息 下图是登录模块的功能逻辑图,并没有使用 Spring Security 提供的认证逻辑(我觉得这个模块是最复杂的...分页显示所有的帖子 支持按照 “发帖时间” 显示 支持按照 “热度排行” 显示(Spring Quartz) 将热帖列表和所有帖子的总数存入本地缓存 Caffeine(利用分布式定时任务 Spring...帖子热度计算 每次发生点赞(给帖子点赞)、评论(给帖子评论)、加精的时候,就将这些帖子信息存入缓存 Redis 中,然后通过分布式的定时任务 Spring Quartz,每隔一段时间就从缓存中取出这些帖子进行计算分数
在本文中,我想向您介绍Joshua Bloch写的“Effective Java”。...那么微服务呢在过去两年的职业生涯中,我一直在使用Spring Boot和基于Grails的微服务。...这两种都是很好的技术(如果你要求的话,我更喜欢Spring Boot),可以让你快速交付……这两种技术都不能让你免于编写糟糕的代码! 根据我的经验,微服务体系结构是相当困难的。...为了使它们变得简单,您不仅需要正确划分域模型,还需要编写干净的可维护代码。 我们从现代微服务框架中获得的速度不应该阻止我们编写高质量的代码。服务的编写速度可能很快,但可能会维持数年。...所有对象的通用方法——处理Java对象的ABC。 类和接口——Java中OOP实践的良好概述。 泛型——深入研究泛型和多态性。 枚举和注释——解释语言中经常被误解和未充分使用的特性。
大家好,又见面了,我是你们的朋友全栈君。 前言: 最近工作中遇到了几次跟maven打包相关的问题,每个问题上网查资料解决都花了不少时间,很影响工作进度。....RELEASE 并且在A项目中配置了打包插件: org.springframework.boot spring-boot-maven-plugin true 然后A\B的都是X。...我开发B,为了使用XXXUtil,于是在B的dependency里依赖了A。...spring-boot-test-1.0-SNAPSHOT.jar中没有主清单属性 其实到这里思路已经比较混乱了,为什么spring-boot的打包插件能修改文件路径?...在maven中,所有的PO都有一个根对象,就是Super POM。Super POM中定义了所有的默认的配置项。
大家好,我是鱼皮。 作为一名后端程序员,一定要对自己写的接口负责,保证接口的正确和稳定性。因此,接口测试也是后端开发中的关键环节。 但我相信,很多朋友是懒得测试接口的,觉得这很麻烦。...严格来说,Swagger 是 一套 完整的 API 开发工具,让我们在统一的界面中完成 API 设计、接口开发、接口测试、文档生成等功能,极大地提高了开发效率。...指路:https://doc.xiaominfo.com/ Knife4j 的用法很简单,按照官方文档的指引,首先根据自己项目的 Spring Boot 版本引入对应的依赖,比如 Spring Boot...Maven 配置: com.github.xiaoymin knife4j-openapi2-spring-boot-starter... 4.3.0 然后在 Spring Boot 的配置文件 application.yml 中添加 Knife4j
我最近在帮助一个使用 Spring Boot 构建微服务的客户,在过去两年中,他们已经构建了 20 多个 Spring Boot 服务。...在他们的环境中,他们使用的 Spring Boot 版本从 1.5 到 2.1 不等。这意味着,当有人配置他们的机器时,他们必须下载多个版本的 Spring Boot。...这些 SQL 脚本应该像其他代码一样被保存在版本控制中,并像其他代码一样进行维护。...我同意 Dan Lua 的帖子[2],他在帖子中提到了以下好处: 简化的组织结构 简化了依赖性 工具化 跨项目变更 原因五:没有明确的服务定义 大多数团队都不知道如何划分微服务。...另外,在 Java 中还有一些新的 Spring Boot 的替代品,如 Micronaut 和 Quarkus,其内存消耗相当于 Node.js。 Node.js 比 Java 更有生产力。
大家好,我是一航!今天带大家玩个好玩儿的配置。 当我们启动SpringBoot项目的时候,控制台会输出SpringBoot的logo以及版本相关的信息!...; org.springframework.boot.ResourceBanner 文本格式,SpringBoot 会读取配置项banner.txt和banner.location,从配置项中获取真实的文件地址...自定义一个banner已经学会了, 那么怎样才能让自己的logo更有个性呢!...这么多不同风格的,总有一个喜欢的款式吧! 我就比较喜欢这个佛祖,自从安排上,感觉Bug都少多了。...: ${spring-boot.version} ${AnsiColor.BRIGHT_RED}
找到你的数据 在考虑过我所有的数据之后,我决定聚焦于以下几个数据源: 我写的学校作业 我的日记 我创作的歌曲集 我的 Facebook 数据(包括我的评论,帖子和聊天内容) 在我整个工程中我使用了以上所有的数据源...,但是在本系列中,我将仅仅使用我的 Facebook 数据。...预处理你的 Facebook 数据 我打算下载所有的 Facebook 数据,但是我并不希望在这个课题中使用所有的 Facebook 数据。对这个课题而言,我只关心我的帖子,评论和聊天历史。...然后生成要存储到此函数的数据: ? ? 这些只是我认为有趣的一些统计数据。我这次保存了所有数据,因为我觉得这将是最有趣的。 可以看到我在 Facebook 上有 2,147 天的文字活动。...我想知道我的词汇用法随着时间的推移而变化。我们怎样才能产生呢?好吧,幸运的是我们给所有文件留了时间戳! 首先,让我们创建我们的绘图函数: ? 现在让我们编写一些函数来描绘我们的单词使用情况: ?
目前,已经有接近1000名注册用户,每天也有不少读者会发布一些帖子,我会带头帮助大家解决问题,当然也希望更多小伙伴加入进来,尤其是哪些遇到瓶颈,不知道如何提升的(帮助别人解决问题就是很好的提升方式)...本问答帖地址:http://spring4all.com/forum-post/322 关于这个问题,其实就是Spring和Spring Boot事件机制的理解。...虽然Spring Boot的基础是Spring,但Spring Boot并没有直接使用Spring中定义的常用事件,而是重新定义了一批。...所以,Spring Boot中应该是没用到ContextStartedEvent的。以上是我的认识,如果有不对的地方,欢迎评论区指出,一起学习一起进阶!...关于Spring Boot具体有哪些事件,也可以看看之前在2.0发布的时候写过一篇:《Spring Boot 2.0 新特性(二):新增事件ApplicationStartedEvent 》 ApplicationStartingEvent
我这里以 Spring Boot 项目为例。...Boot 中使用 Cookie 的内容可以查看这篇文章:How to use cookies in Spring Boot 。...服务器宕机,其保存的所有 Session 信息就完全丢失了。 每一个服务器保存的 Session 信息都是互相同步的,也就是说每一个服务器都保存了全量的 Session 信息。...但是,我们使用 Token 的话就不会存在这个问题,在我们登录成功获得 Token 之后,一般会选择存放在 localStorage (浏览器本地存储)中。...我们在前面的问题中探讨了使用 Session 来鉴别用户的身份,并且给出了几个 Spring Session 的案例分享。 我们知道 Session 信息需要保存一份在服务器端。
它仍在发展,但这里的情况也很有趣。我将在本文的下一部分中对此进行描述。所有这些新闻激励我看一下Spring Cloud的现状,并讨论未来的一些潜在变化。...还值得一提的是,我们的组织内部有微服务 - 当然是在Spring Boot和Spring Cloud之上构建的,使用Eureka,Zuul和Ribbon等模块。...Spring Cloud Config支持多个源存储库,包括Git,JDBC,Vault或简单文件。您可以在我之前的帖子中找到许多使用此项目为您的微服务提供分布式配置的示例。今天,我不打算谈论它。...它提供了一个建立在Spring Ecosystem之上的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。...关注我,回复如下代码,即可获得百度盘地址,无套路领取!
Undertow 它能成为 Spring Boot 默认集成的三大容器之一,就凭这点,我想就足以说明它的地位。 Undertow 什么鬼?...Spring Boot 基础知识就不介绍了,关注公众号Java技术栈在后台回复boot获取我写的系列教程。...因为在 spring-boot-starter-web 启动器中,Tomcat 是 Spring Boot 默认的嵌入式容器,即:spring-boot-starter-tomcat。...Spring Boot 基础知识就不介绍了,不熟悉的可以关注公众号Java技术栈在后台回复boot获取我写的系列教程。...上面有所有 Server 配置参数和说明。
老实说,我第一次看到这个面试题的时候,人是懵的。 我知道 Spring 在启动期间会把 bean 放到 ioc 容器中,但是到底是单线程还是多线程放,我还真不清楚。...接下来,关于这个 11 年前的帖子,里面的内容还是比较多,我只能带你简单浏览一下帖子,如果你想要了解细节的话,还得自己去看看。...然后官方立马就站出来对线了: 小老弟,虽然从代码上看,在 Spring 容器中引入并发的 Bean 初始化看起来是直截了当的方法,但在实现起来并非看起来这么简单。...,这些可能会影响所有使用 Spring 的应用程序,恐怕这不是一个有吸引力的前景。...在寻找答案的过程中,我找到了这样的一个项目: https://github.com/dsyer/spring-boot-allocations 这个项目是对于不同版本的 Spring Boot 做了启动时间上的基准测试
领取专属 10元无门槛券
手把手带您无忧上云