Spring Boot 2系列(四十二):源码分析自动配置之编码过滤器

  在 SSM 框架中,通常会在 web.xml 中配置编码过滤器 CharacterEncodingFilter,但在 Spring Boot 应用中却没有要求人为配置编码过滤器,是因为 Spring Boot 基于 习惯优于配置 的原则,默认情况下自动配置了编码过滤器,采用的 UTF-8 编码。

  本篇分析 Spring Boot 的编码过滤器的自动配置,也更详细的理解和体会 Spring Boot 自动配置的使用。

阅读更多

Spring Boot 2系列(四十一):源码分析自动配置实现及手写自动配置

  Spring Boot 的一大特性是基于 习惯优与配置 原则为很多组件提供了 自动配置 ,这个强大的特性可以快速将其它功能整合,个人认为这是促成该框架流行的主要原因,特别适合互联网项目的分布式开发(基于业务的单一职责原则),开发可以将更多精力集中在业务上,而不是配置上。

阅读更多

Spring Boot 2系列(四十):源码分析启动类上 @SpringBootApplication 注解

  Spring Boot 都会有一个名为 xxxApplication 的启动类,里面有一个标准的 java 应用的入口 main 方法,用于启动 Spring Boot 应用项目。

  @SpringBootApplication 是 Spring Boot 的核心注解,作用在 xxxApplication 的启动类上,SpringBoot 会自动扫描 @SpringBootApplication 所在类的同级包及下级包里的所有 Bean 。

  通过 Spring Initializr 或 IDE 支持创建的 Spring Boot 应用的在 groupId + arctifactID 组合的包名下会创建一个 xxxApplication 启动类。

阅读更多

Spring Cloud(十三):分布式服务链路跟踪 Sleuth

微服务架构下,会有很多微服务,服务之间调用关系会非常复杂,就非常有必要对每个请求的完整调用链进行跟踪,了解调用了那些服务,当出现问题时可以快速定位。

Spring Cloud Sleuth 为 Spring Cloud 实现了一个分布式跟踪解决方案 Sleuth,该组件大量借签了 Dapper、Zipkin 和 HTrace。

对于大多数用户来说,Sleuth 应该是不可见的,它会自动检测系统的交互,可以在日志中捕获跟踪数据,或将其它送到远程日志收集服务器。

Spring Cloud Sleuth 官方文档Sleuth Zipkin 日志存储跟踪示例Zipkin GitHub Zipkin UI 示例OpenZipkin/Brave 捕获延迟信息的库

阅读更多

Spring Cloud(十一):分布式配置管理 Config 之 JDBC 实现

Spring Cloud Config 支持 Git 和 JDBC 做为后端存储库,默认是 Git 存储库,对于开发来说是方便且易于理解的;但对于运维来说,因涉及 Git 操作,可能就不那么方便了。

另外,如果能给分布式配置管理提供 Web 控制台来操作就非常直观和方便了,JDBC 存储库就可以较好的应用在 Web 应用中。

阅读更多

Spring Cloud(十):分布式配置管理 Config 之 Git 实现

  在微服务架构集群部署的环境中,可能会有十几甚至几十个服务,若要修改项目属性参数,手动的方式是很糟糕的,所以就有了分布式配置管理这个概念。

  将服务器的配置外部化,可以存在文件或数据库中,一个专门用于管理应用服务配置的应用,可以随时修改和自动更新到目标服务器上。目前已有开源项目,如,smconfdisconfQConf

  Spring Cloud Config 为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Config Server,可以在所有环境中管理应用程序的外部属性。Spring Cloud Config 官方文档spring-cloud-config Github

阅读更多