摘要: SpringBoot的自动装配是拆箱即用的基础,也是微服务化的前提。其实它并不那么神秘,我在这之前已经写过最基本的实现了,大家可以参考这篇文章。这次主要的议题是,来看看它是怎么样实现的,我们透过源代码来把握自动装配的来龙去脉。 一、自动装配过程分析 1.1、关于@SpringBootApplicat 阅读全文
posted @ 2018-05-12 17:36 聂晨 阅读(81310) 评论(2) 推荐(16) 编辑
摘要: 本篇文章主要带大家简单分析一下AOP的代理对象,至于AOP是什么,如何配置等基础性知识,不在这里讨论。阅读前请先参考:代理模式,在这之前我们需要了解springframework的三个核心接口与getBean方法 一、FactoryBean&BeanFactory&ObjectFactory 这三个 阅读全文
posted @ 2018-05-11 09:08 聂晨 阅读(4721) 评论(0) 推荐(5) 编辑
摘要: 我们知道在SpringCloud中,当配置变更时,我们通过访问http://xxxx/refresh,可以在不启动服务的情况下获取最新的配置,那么它是如何做到的呢,当我们更改数据库配置并刷新后,如何能获取最新的数据源对象呢?下面我们看SpringCloud如何做到的。 一、环境变化 1.1、关于Co 阅读全文
posted @ 2018-05-05 19:32 聂晨 阅读(18145) 评论(2) 推荐(8) 编辑
摘要: tips:我希望通过这篇文章来给对于bootstrap还不理解的朋友带来帮助。当然这篇文章不仅仅是讲解知识,我更希望给广大朋友带来学习与理解官方文档的一种思路。阅读本文前,建议大家对SpringBoot的启动机制与Environment的作用有大致的了解。关于SpringBoot的启动机制我们可以参 阅读全文
posted @ 2018-04-29 10:37 聂晨 阅读(12248) 评论(9) 推荐(3) 编辑
摘要: SpringApplication是SpringBoot的启动程序,我们通过它的run方法可以快速启动一个SpringBoot应用。可是这里面到底发生了什么?它是处于什么样的机制简化我们程序启动的?接下来我们就带着这两个问题来揭开SpringBoot启动过程的神秘面纱。 一、基于Springfram 阅读全文
posted @ 2018-04-26 18:26 聂晨 阅读(9463) 评论(0) 推荐(7) 编辑
摘要: 当我们使用@DiscoveryClient注解的时候,会不会有如下疑问:它为什么会进行注册服务的操作,它不是应该用作服务发现的吗?下面我们就来深入的探究一下其源码。 一、Springframework的LifeCycle接口 要搞明白这个问题我们需要了解一下这个重要的接口: /* * Copyrig 阅读全文
posted @ 2018-04-23 09:52 聂晨 阅读(14276) 评论(2) 推荐(5) 编辑
摘要: 截止到目前JDK的版本已经更新到10了,虽然java9的生命周期才半年,但是我认为这个版本带来的变革是不可磨灭的,它是第一次深层次的针对架构以及依赖上的革新。下面我们就来学习一下。 一、模块化项目构建 其实模块化本身不难理解,我们先前使用maven或者gradle就构建过多模块的项目。那么我们在ja 阅读全文
posted @ 2018-04-18 17:17 聂晨 阅读(5037) 评论(0) 推荐(2) 编辑
摘要: 一、Filter中统一异常处理 其实在SpringCloud的Edgware SR2版本中对于ZuulFilter中的错误有统一的处理,但是在实际开发当中对于错误的响应方式,我想每个团队都有自己的处理规范。那么如何做到自定义的异常处理呢? 我们可以先参考一下SpringCloud提供的SendErr 阅读全文
posted @ 2018-04-16 21:57 聂晨 阅读(8258) 评论(2) 推荐(2) 编辑
摘要: 原先在公司做项目时,写了一个简单的基于gradle部署项目的脚本,今天翻出来记录一下 一、build.gradle buildscript { ext { env = System.getProperty("env") ?: "test" jvmArgs = "-server -Xms128m -X 阅读全文
posted @ 2018-04-15 11:07 聂晨 阅读(1810) 评论(0) 推荐(0) 编辑
摘要: 这篇文章我们解决上篇链路跟踪的遗留问题 一、将追踪数据存放到MySQL数据库中 默认情况下zipkin将收集到的数据存放在内存中(In-Memeroy),但是不可避免带来了几个问题: 在服务重新启动后,历史数据丢失。 在数据量过大的时候容易造成OOM错误 在服务重新启动后,历史数据丢失。 在数据量过 阅读全文
posted @ 2018-04-13 23:48 聂晨 阅读(469) 评论(0) 推荐(0) 编辑