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