git ssh 配置及使用

配置使用 ssh 方式来提交和克隆代码大概可以分为以下几个步骤:

  • 设置 Git 的 user name 和 email:(如果是第一次的话)
  • 检查是否已经有 SSH Key。
  • 生成密钥
  • 添加密钥到 ssh-agent
  • 登陆 github, 添加 ssh
阅读更多

SpringBoot 源码系列-日志详解

Spring Boot 使用 Commons Logging 进行所有内部日志记录,但保留底层日志实现。为 Java Util Logging、Log4J2 和 Logback 提供了默认配置。在每种情况下,loggers 都预先配置为使用 console 输出,并且也提供可选的文件输出。

默认情况下,如果使用 “starters”,则使用 Logback 进行日志记录。还包括适当的 Logback 路由,以确保使用 Java Util 日志记录、Commons 日志记录、Log4J 或 SLF4J 的依赖库都能正常工作。

阅读更多

SpringBoot 实践系列-资源访问

简介

当我们创建一个 SpringBoot web 应用时,有时候需要从 classpath 去加载一些文件,这里记录下在 war 和 jar 两种不同文件格式下加载文件的解决方案

阅读更多

SpringBoot 源码系列-启动过程分析

SpringBoot 作为目前非常流行的微服务框架,它使得构建独立的 Spring 生产级应用变得非常简单,因此受到很多互联网企业的青睐。

最近在写 SOFATracer 集成 Spring Cloud Stream RocketMQ 的过程中,遇到了一些问题,比如:BeanPostProcessor 不生效,如何在 BeanPostProcessor 不生效的情况下去修改一个 Bean 等,这些问题其实都是和 Bean 的生命周期有关系的,当然也和容器启动的过程有关系。SpringBoot 的启动过程对于我来说其实不算陌生,也可以说是比较熟悉,但是之前没有完整的梳理过这一块的东西,在实际的应用过程成难免再去踩一些坑。另外想到之前也写过一篇 SpringBoot系列- FatJar 启动原理,刚好承接上篇,继续来探索 SpringBoot 中的一些知识点。

阅读更多
SpringBoot 源码系列-内嵌 Tomcat 的实现原理解析

SpringBoot 源码系列-内嵌 Tomcat 的实现原理解析

对于一个 SpringBoot web 工程来说,一个主要的依赖标志就是有 spring-boot-starter-web 这个 starter ,spring-boot-starter-web 模块在 spring boot 中其实并没有代码存在,只是在 pom.xml 中携带了一些依赖,包括 web、webmvc、tomcat 等:

阅读更多

ARK 插件基本规则及注意事项

SOFAARK 是一个轻量级的类隔离框架,其有两个基本的能力:解决依赖包冲突和多应用(模块)合并部署。本篇将从解决依赖角度来说明下 SOFARK 插件的基本使用规则。

下图是官方文档中提供的用于描述依赖包冲突的一个场景:

阅读更多

响应式编程 Reactor

从响应式编程说起

响应式编程是一种关注于数据流(data streams)和变化传递(propagation of change)的异步编程方式。 这意味着它可以用既有的编程语言表达静态(如数组)或动态(如事件源)的数据流。

在响应式编程方面,微软跨出了第一步,它在 .NET 生态中创建了响应式扩展库(Reactive Extensions library, Rx)。接着 RxJava 在 JVM 上实现了响应式编程。后来,在 JVM 平台出现了一套标准的响应式 编程规范,它定义了一系列标准接口和交互规范。并整合到 Java 9 中(Flow 类)。

阅读更多

聊一聊-JAVA 泛型中的通配符 T,E,K,V,?

前言

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

阅读更多