星海

Life's A Struggle!

背景

和朋友一起维护的开源组织(我就是打个辅助,逃~),其中有一个系列的项目,这些项目统一通过 base 项目的 pom 文件管理这个系列项目依赖的第三方 jar,其他一些辅助项目(如:tools)项目主要是一些常用工具方法的封装,为了能让我们在不同机器,不同地点能够无缝切换,更重要的让使用的伙伴能以最简便的方式运行(避免不必要的配置),我们需要把通用的东西托管起来,那么就需要将这些配置依赖或辅助 jar 托管到 Maven中央仓库,话不多说,就跟着我的步骤来看看如何将 jar 发布到 Maven中央仓库

阅读全文 »

在 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 开始一步步深入

阅读全文 »

在学习过程中,我们首先需要将学习知识的基本概念搞清楚,而搞清楚概念最权威的方式是查阅 英文版 • 维基百科 ,或者是对应知识的官方文档上面查找相关的知识。这样学习才能学习到知识的精华,而不是阅读经过别人转译过的文章。因此,这篇文章仅是本人在学习 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

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

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

手机行业持续不断发展,为我们生活带了很多便利,在我们生活中到处都存在它的痕迹,它不仅是一个工具而且还是有温度的组手,协助你解决生活中的各种问题,渐渐成为了人们不可或缺的“器官”。它为什么就能进化成人类的一部分呢?其中一个重要的功能就是定位,看似单一的功能却渗透了我们各种场景,比如:定位,导航,这种基础的功能,还基于定位社交聊天,运动轨迹画像,出行等等,解决了人与人,人与物,物与物之间在位置上的问题。那么我本节就来聊一聊定位相关的一些知识,以及手机是如何在 Android 系统中是如何进行定位的

阅读全文 »

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

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

阅读全文 »
0%