Spring Boot 2系列(六十三):动态刷新环境配置和Bean属性值

Spring Boot 应用,修改了配置文件中的参数,不重启应用使修改生效,使注入配置参数的 Bean 更新生效。

要满足配置文件修改,就需要将Spring Boot的配置文件外部化,而不是在 Spring Boot Jar 包类路径下的文件。

Spring Boot的配置文件外部化支持两个路径:file:./file:./config/,即与 Jar 同级目录中的配置文件,和 Jar 所在目录的 config 子目录中的配置文件。

本文主要参考了 spring-cloud-context 的 refresh 接口的实现。

阅读更多

Spring Boot 2系列(六十二):集成 WebFux 实现响应式Web

Spring Framework 5.0 版本增加了响应式 Web 框架 Spring WebFlux 。 它是完全无阻塞的,支持 Reactive Streams 反背压,并且可以在 Netty、Undertow 和 Servlet 3.1+ 容器等服务器上运行。

Spring Boot 通过为 Spring Webflux 提供自动配置来简化响应式 Web 应用程序的开发。

阅读更多

Spring Boot 2系列(六十一):作为Linux服务运行Java程序

除了使用 java -jar 运行 Spring Boot 应用程序之外,还可以为 Unix 系统制作完全可执行的应用程序。

完全可执行的 jar 可以像任何其他可执行二进制文件一样执行,也可以使用 init.dsystemd 注册。

这有助于在常见的生产环境中安装和管理 Spring Boot 应用程序。

阅读更多

Spring Boot 2系列(六十):Tomcat 中 NIO 模型与启动流程

以 Spring Boot 2.6.3 版本,spring-boot-starter-web 嵌入的 9.0.56 版本 tomcat-embed-core 为例,分析 Tomcat 中的 NIO 的配置与优化。

注意:Tomcat 8.5 移除了 BIO,默认启用 NIO,Tomcat 的架构和核心组件已与 Tomcat 7.x 版本已略有不同,与网上很多基于 Tomcat 7.x 版本分析的文章是不符的,需要自己走读源码。

阅读更多

Spring Boot 2系列(五十八):集成CXF实现Web Service详解

前言:很早之前有接触和开发过Web Service 服务,但近些年在互联网行业几乎看不到 Web Service 服务了,互联网行业几乎都采用 HTTP + JSON 对外提供数据服务。

但并不意味着 Web Service 已消失(迟早的事),一些传统垂直行业的系统仍然使用 Web Service。

例如,医院的 HIS(医院信息系),10年前的系统大把的,大量外围业务系统和服务商依赖于它。

阅读更多

Spring Boot 2系列(五十五):spring-boot-maven-plugin 详细配置

创建 Spring Boot 应用,默认会添加 Maven 插件:spring-boot-maven-plugin。如果该应用的结构比较简单,使用默认的编译打包等,可以不用额外的配置。

若应用结构比较复杂,如父子工程,多层结构等;或要通过命令行动态指定打包方式等等,就需要额外的配置支持了。

该篇结合官方文档对 spring-boot-maven-plugin 的使用配置进行详细描述。另有的 Maven 相关文章,但不是针对 Spring Boot 和 插件的。

Spring Boot Maven Plugin 官网Apache Maven 官网

阅读更多

Spring Boot 2系列(五十四):分布式文件服务 FastDFS 安装与集成

项目需要用到文件服务,外网使用阿里云的 OSS 对象存储,内网优先考虑 FastDFS,备选 go-fastdfs

FastDFS 是一款开源的轻量级的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等。–摘自官方说明。

FastDFS 的官方文档极少,不便于快速学习用使用,需要个人整理总结。在源码的根目录下有个 INSTALL 的文件,里面记录的是安装 FastDFS 服务的安装步骤。

Github > FastDFSGitee > FastDFSgo-fastdfs fastdfs-client-java。另可参考 tobato/FastDFS_Client 文档。

阅读更多