glmapper

glmapper

从程序的世界中全身而退

SpringBoot 实践系列-Filter 中的异常处理和 Controller 中的异常处理
本篇主要是记录如何使用 SpringBoot 所提供的 ErrorController 这个接口能力;其内置了一个 BasicErrorController 对异常进行统一的处理,当在 Controller 发生异常的时候会自动把请求 forward 到 /error 这个请求 path 下(/error 是 SpringBoot 提供的一个默认的mapping)。BasicErrorController 提供两种返回错误:1、页面返回;2、json 返回。 背景开发中遇到的一个问题:项目中所有的 rest 请求均是通过 json 形式返回,且自定义了一个统一的数据结构对象,如下: 12...
菜鸟成长系列-适配器模式
本文为阅读 《JAVA与模式》的个人笔记,文中相关概念及背景描述参考书本。如有不当,请联系指正。 定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配为无法在一起工作的两个类能够在一起工作 -《JAVA与模式》 适配、包装、转换几个字眼从汉字的字面意思来说是不同的,不同在于这几个词所对应的行为不同;但是他们所期望的目的是差不多一致的,就是将不可用变成可用。所以常说的适配器模式、转换器模式以及包装模式指的都是一个模式。 适配器模式的两种形式在 java 语言体系中,根据适配类型的不同。适配器模式可以分为:类的适配器模式和对象的适配器模式。 类的适配器模式...
一文详解蚂蚁金服分布式链路组件 SOFATracer 的埋点机制
SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的,这些链路数据可用于故障的快速发现,服务治理等。 GITHUB 地址:https://github.com/sofastack/sofa-tracer/pulls (欢迎 star)官方文件地址:https://www.sofastack.tech/projects/sofa-tracer/overview/ 2018 年末时至 2019 年初,SOFA 团队发起过 剖析-sofatracer-框架 的源码解析系列文章。这...
SpringBoot 源码系列-自动配置及 starter 机制解析
一家之言,如有任何错误,请批评指出,不胜感激 本篇主要来讨论研究两个问题:1、什么自动配置,2、如何编写自动配置 在使用 Spring 作为项目开发框架的过程中,当需要集成某个组件时,通常需要大量的 xml 配置才可以让项目工程 run 起来,下面先以 mybatis 为例,来看下如何使用 mybatis-Spring 模块,需要哪些必不可少的依赖和配置。 使用 mybatis-spring任何组件的集成都绕不过两个问题:依赖和配置,关于配置在这篇文章中介绍了配置的一些点,有兴趣的可以看下。 依赖从 mybatis 的官方文当可以了解到,要使用 MyBatis-Spring 模块,...
SpringBoot 实践系列-外部化配置优先级问题
本文主要针对 spring.profiles.active、spring.config.location 以及 spring.config.additional-location 的作用机制及优先级问题进行实践对比。 本文案例工程已上传 github 仓库:https://github.com/glmapper/springboot-series-guides/tree/master/guides-properties spring.profiles.active除了 application.properties 文件之外,profile-specific 配置也可以通过以下命名方式...
SpringBoot 源码系列-配置解析
注:本文基于 SpringBoot 2.1.11 版本 说到配置,你能想到的是什么? 在日常的开发和运维过程中,可以说配置都是及其重要的,因为它可能影响到应用的正常启动或者正常运行。相信在之前 Spring xml 时代,很多人都会被一堆 xml 配置折腾的够呛,除此之外,还有像数据库连接配置、缓存配置、注册中心配置、消息配置等等,这些相信大家都不会陌生。 配置对于开发人员或者运维人员来说可以比喻成一把”钥匙“,可以通过这把”钥匙“让我们的程序 run 起来,可以通过这把 ”钥匙“ 开启或者关闭应用程序的某一个功能。那么为什么会需要配置,对于一个应用来说,配置的意义又是什么呢? 配...
SpringBoot 源码解析系列 & SpringBoot 实践系列综述
源码解析系列: SpringBoot 系列-FatJar技术解析 SpringBoot 系列-启动过程解析 SpringBoot 系列-事件机制解析 SpringBoot 系列-Bean 的生命周期与扩展 SpringBoot 系列-日志框架解析 SpringBoot 系列-资源访问解析 SpringBoot 系列-内嵌Web容器解析 SpringBoot 系列-配置解析 SpringBoot 系列-自动配置及 starter 机制解析 SpringBoot 实践-外部化配置优先级问题 实践系列 SpringBoot 实践-集成 RocketMQ SpringBoot 实践-Kaf...
git ssh 配置及使用
配置使用 ssh 方式来提交和克隆代码大概可以分为以下几个步骤: 设置 Git 的 user name 和 email:(如果是第一次的话) 检查是否已经有 SSH Key。 生成密钥 添加密钥到 ssh-agent 登陆 github, 添加 ssh 设置 Git 的 user name 和 email1234# 用户名替换成自己的用户名git config --global user.name "glmapper"# 邮箱替换换成自己的邮箱git config --global user.email "glmapper_2018@163.com" 检查是否已经有 SSH Key...
SpringBoot 源码系列-Bean 的生命周期与扩展
本篇基于 SpringBoot 2.2.2.RELEASE 版本,Spring 各个版本之间多少存在一些差异,不过主流程基本相同;大家在阅读过程中需关注这点。 继续承接上一篇 SpringBoot 系列-启动过程分析,本篇围绕一个 bean 的生命周期,对 bean 进行一些修改和扩展。本篇将涉及到以下主要内容: 阅读之前 BeanDefinition 解析时机和过程 invokeBeanFactoryPostProcessors 执行过程分析 invokeBeanDefinitionRegistryPostProcessors 执行过程分析 BeanFactoryPostP...
SpringBoot 源码系列-日志详解
Spring Boot 使用 Commons Logging 进行所有内部日志记录,但保留底层日志实现。为 Java Util Logging、Log4J2 和 Logback 提供了默认配置。在每种情况下,loggers 都预先配置为使用 console 输出,并且也提供可选的文件输出。 默认情况下,如果使用 “starters”,则使用 Logback 进行日志记录。还包括适当的 Logback 路由,以确保使用 Java Util 日志记录、Commons 日志记录、Log4J 或 SLF4J 的依赖库都能正常工作。 下面先来看一个最简单的 SpringBoot demo 工程的日...
avatar
Glmapper@leishu
分享与学习