能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
前华为、腾讯、阿里员工,从事Java后台工作
弄清楚InnoDB表数据存储的细节
今天就用java来一起开发一个简单的Flink应用,作为入门体验
本文实战Flink1.7的安装和Demo运行过程
分析Spring和Spring boot源码,了解spring.factories自动加载原理
《自定义spring boot starter三部曲》的第二篇,开始编码实战,开发并使用starter库
从本章开始,一起实战一个自定义的spring boot starter,整个系列共三篇文章,本篇是开篇,咱们一起先了解基本概念、规划实战内容,为整个系列做好准备
前面的系列文章中,我们分析源码对Eureka有了深入了解,其中获取服务列表、注册、续约等操作都涉及到client和server端的交互,今天我们通过Wireshark抓包来分析这些交互的内容,以印证之前的代码分析,达到理论实践相结合,彻底融会贯通
从源码分析Eureka client注册到Eureka server时,用于标记自己身份的标志的具体生成逻辑
本章学习的是周期性服务续约的相关代码,对应用如何将自身信息注册到Eureka进行深入了解
本章学习的是服务注册逻辑的相关代码,对应用如何将自身信息注册到Eureka进行深入了解
了解周期性更新服务列表的相关代码,查看定期获取所有注册到Eureka server上应用信息的逻辑
分析源码,了解应用请求服务注册的逻辑
在基于SpringCloud做开发的时候,EnableDiscoveryClient和EnableEurekaClient这两个注解我们并不陌生,今天就来聊聊它们的区别,和网上更早期的类似文章不同的是:本文会聊到Dalston之后的版本中,这两个注解的区别
主要注解EnableEurekaServer的详细分析
大家好,从本章开始我们一起进入SpringCloud的源码世界,通过源码分析再结合实战,一起加深对SpringCloud体系的认识
kubernetes官方的sidecar,与SpringBoot能有关系?请随本文一同探究
下载OpenJDK11源码再编译它,很麻烦吗?借助docker,这些操作会变得异常简单
来试试编译OpenJDK11源码,得到属于自己的独有的JDK
借助docker,一行命令就能下载OpenJDK11源码
Ubuntu环境下载OpenJDK11源码,为之后的修改和编译做准备
实操ubuntu下安装OpenJDK10
maven编译会遇到"编码GBK的不可映射字符"的警告,来看看出了啥问题,怎么处理
在Spring Cloud环境中,Eureka client注册到Eureka server后,可以在Eureka server的home页面看到注册信息,这些信息的内容和Eureka client的配置相关,本文将一些重要配置记录下来以备使用
在查看Wireshark的解析记录时,请求包和响应包常常是密密麻麻堆在一起,如何根据一个请求包准确找到其对应的响应呢?请随本文步步实践,找到方法
官方文档和demo是最可靠的信息来源,涉及到升级操作时,最好把关键项列出来,去官方文档中确认一下
Spring cloud环境中的应用,如果注册到Eureka server,就会从Eureka server获取所有应用的注册信息(也叫服务列表),然后保存到本地,这个操作是周期性的,默认每三十秒一次,今天咱们来通过实战将其观察得清清楚楚
InstanceInfoReplicator是个任务类,负责将自身的信息周期性的上报到Eureka server,本篇来一起分析了解它
了解Eureka server在定时更新服务列表时依赖的细节
在使用@Import注解来注册bean的时候,Import注解的值可以是ImportSelector或者DeferredImportSelector的实现类,spring容器会实例化这个实现类,并执行其selectImports方法,那么问题来了:ImportSelector和DeferredImportSelector的区别在哪里,我们自定义Imort逻辑的时候该选择哪个呢?本文通过分析相关的spring源码来查找答案
spring框架下做开发时,@Import是常见的注解,可以用来动态创建bean,今天我们先从源码分析原理,再用实战来验证Import的作用
实战在容器初始化的时候对bean实例做设置
学习如何通过自己写代码的方式,向spring容器中注册bean
通过自定义BeanFactoryPostProcessor接口的实现类,来对bean实例做一些控制
如果业务上需要在spring容器启动和关闭的时候做一些操作,可以自定义SmartLifecycle接口的实现类来扩展,本章我们通过先分析再实战的方法,来掌握这种扩展方式
提到广播与监听,我们常常会想到RabbitMQ、Kafka等消息中间件,这些常用于分布式系统中多个应用之间,有时候应用自身内部也有广播和监听的需求(例如某个核心数据发生变化后,有些业务模块希望立即被感知),这时候spring提供的基于ApplicationContext的广播与监听就派上用场了,接下来我们从原理到实践,来了解spring提供的这套机制吧
Aware.java是个没有定义任何方法的接口,拥有众多子接口,在spring源码中有多处都在使用这些子接口完成各种场景下的回调操作,当业务有需要时,我们只需创建类来实现相关接口,再声明为bean,就可以被spring容器主动回调
在之前学习spring环境初始化源码的过程中,见到有些地方能通过子类来实现自定义扩展,从本章开始,我们来逐个实践这些扩展,除了加深对spring的理解,有的扩展也能解决一些通用的问题
在Spring框架中,BeanFactory和ApplicationContext都是大名鼎鼎,BeanFactory是基础ApplicationContext是扩展这句话怎么理解?请随本文一同去了解它们
在学习spring容器初始化的过程中,发现spring容器预留了一些扩展点,我们可以写子类来做功能扩展,今天就来探寻SpringBoot框架下的扩展方式
《spring4.1.8初始化源码学习三部曲》系列的终篇,重点是学习AbstractApplicationContext类的refresh()方法
本章是学习spring4.1.8初始化源码的第二篇,我们聚焦ClassPathXmlApplicationContext.setConfigLocations方法
学习spring初始化过程是深入了解spring过程中重要的一步,今天我们就以一个简单的demo为例来学习spring初始化的源码
实战修改spring-framework源码,然后编译构建,最后用写一个demo工程来验证构建成功
跳过task来节省时间,例如文档包和源码包,加速编译过程
将Java对象实例保存在Redis时,将对象序列化成字符串或者序列化成byte数组再存入,以上两种方式孰优孰劣?字符串方式来存取的好处是编码和调试更简单容易,而byte数组的优势又在哪里呢,实战验证吧
有时候我们需要将Java对象实例存入Redis,常用方法有两种: 1. 将对象序列化成字符串后存入Redis; 2. 将对象序列化成byte数组后存入Redis;有关这两种存储方式的性能对比,会在下一章通过实战验证,本章先来看一下如何将对象序列化成byte数组后存入Redis;
在SpringBoot框架下进行RabbitMQ开发,并且在Docker环境部署和运行
向RabbitMQ发出消息后,有时我们希望消费方不要立即消费,这时候延时队列就派上用场了,本篇就来快速体验其效果
紧急的时候,借助Docker,在不安装JDK和Maven的环境也能构建Maven工程
制作Docker镜像时常用centos的官方镜像作为基础镜像,其时区和系统编码都不满足我们的需求,今天我们就来实战制作一个Docker镜像,将时区和系统编码设为我们想要的