0%

在 SpringBoot 系列的第二篇文章中,已经详细分析了 SpringBoot 的启动过程,那么这篇文章,我们通过源码调试的方式来验证我们的分析,首先我们在控制台中输入 java 命令,可用输出 JDK 给我们提供了一些命令,其中-agentlib命令就是本篇文章所介绍,用于我们进行源码调试

阅读全文 »

我们在开发过程中,使用 java -jar you-jar-name.jar 命令来启动应用,它是如何启动?以及它如何去寻找.class文件并执行这些文件?本节就带着这两个问题,让我们一层层解开 SpringBoot 项目的 jar 启动过程,废话不多说,跟着我的脚步一起去探索spring-boot-load的秘密。

SpringBoot(一) 初识已经解释了为什么在编译后的 jar 中根目录存在org/springframework/boot/loader内容,以及为了方便学习研究,我们需要在项目的依赖中导入org.springframework.boot:spring-boot-loader依赖。同时我们在解压的you-jar-name.jar文件中,查看对应的清单文件 MANIFEST.MF 内容,其中明确指出了应用的入口org.springframework.boot.loader.JarLauncher因此我们就从JarLauncher开始一步步深入

阅读全文 »

springboot

从本篇文章开始,记录学习 SpringBoot框架在实践,源码方面的知识,本节是第一篇,因此不涉及相关复杂知识的学习。众所周知,随着微服务的广泛流行,Spring 系列的 SpringBoot 和 SpringCloud 的应用也更受欢迎,那么请跟随我的脚本来一步步解开 SpringBoot 她神秘的面纱

阅读全文 »

在学习过程中,我们首先需要将学习知识的基本概念搞清楚,而搞清楚概念最权威的方式是查阅 英文版 • 维基百科 ,或者是对应知识的官方文档上面查找相关的知识。这样学习才能学习到知识的精华,而不是阅读经过别人转译过的文章。因此,这篇文章仅是本人在学习 SOA 基本概念时,对维基百科知识的一个汇总翻译记录,不建议朋友把这篇文章当做你的学习资料,具体请查阅Service-oriented architecture

面向服务的架构(SOA)是一种软件设计风格。 SOA 服务通过应用组件,通过网络通信协议的方式向其他组件提供服务。SOA 的基本原则是独立于厂商,独立于产品以及独立于技术[1]。服务是一种功能的离散独立单元,可以远程访问并独立运行与更新,例如在线查询信用卡账单。

阅读全文 »

这是第一篇翻译文章,用于学习近些年火热的微服务,这篇是微服务概念是由 James Lewis 所著,虽然官网已有中文翻译,但是在学习过程中,应该应该动手输出,这样有助于对知识的理解和记忆,废话不多说,开始翻译

微服务

近些年术语“微服务架构”就像雨后春笋般蓬勃的发展,微服务描述软件应用设计是独立可部署服务一个特殊方式。虽然这些都不够准确的去定义一个架构风格,但存在一些通用的特质(大家达成共识的特征),如何去组织围绕业务能力,如何自动化部署,端点的智能发现,以及语言和数据去中心化的控制

阅读全文 »

OOAD(Object Oriented Analysis and Desigin) 是根据 OO 的方法学,对软件系统进行分析和设计的过程

  • OOA(Object Oriented Analysis):分析阶段
  • OOD(Object Oriented Desigin):设计阶段

What to do

分析阶段主要解决以下问题

  • 建立针对业务问题域的清晰视图
  • 列出系统必须要完成的核心任务
  • 针对问题域建立公共词汇表
  • 列出针对此问题域的最佳解决方案
阅读全文 »

ZXing(“Zebra Crossing”)用于Java,Android的条形码扫描库。虽然当前开源库仅处于维护模式,意味着更改是由贡献的补丁来驱动,只会考虑错误修复和次要的增强功能

本篇开启 ZXing项目Android 模块的探索学习之路,那么首先我们要集成该模块到项目中

阅读全文 »

移动端开发,一个避不开的老生常谈功能开发,二维码扫描识别(主要)及二维码生成(辅助),虽然已有现成的开源项目提供了功能,仅仅作为功能的开发集成和调试,其实远远不够,应该在完成功能开发的基础上去学习背后的技术点和原理,让我们更加完整的掌握该技术。废话不多说,本篇是 Zxing 相关技术的第一篇文章,本篇不会涉及到应用相关,仅仅是二维码基础知识的学习记录。

阅读全文 »

这是一篇记录使用macOS系统时遇到的一些疑难杂症

iTerm2相关

文本乱码

在一开始使用macOS就已经安装iTerm2来代替了系统自带的Terminal应用,毕竟颜值是决定要不用长期使用的重要因素

iTerm2对应的配置文件:.zshrc,Terminal对于的配置文件:.bash_profile.bashrc

阅读全文 »