自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Docker 挂载 Nginx 配置注意事项

1.说说挂载挂载含义:启动时覆盖,运行时新增共享挂载作用:docker 一般是非持久化存储,重启关闭可能导致数据丢失挂载内容:日志(启动失败时可以查看)配置文件(先写好)运行数据2.Docker 挂载 Nginx 两点注意两点注意:1)我们不是直接挂载 nginx.conf 而是 conf.d 目录下的 server 配置注:先使用原文件,启动后再修改,易报错相应的配置文件如下(只包含 server 部分)server { listen 80;

2021-03-15 00:30:41 120

原创 Git 原理分析:存储对象、树对象、提交对象

在上一篇我们分析了如何在开发中使用 Git, 但是 Git 的底层原理到是什么呢?1.GIT 存储对象(HashMap)Git 是一个内容寻址文件系统,其核心部分是一个简单的键值对数据库(key-value data store),你可以向数据库中插入任意内容,它会返回一个用于取回该值的 hash 键。# 将 'Let us go' 存入键值库,然后返回相应对象的key值echo 'Let us go' | git hash-object -w --stdin4ab1f81f376332da3ca

2021-03-13 23:58:29 33

原创 Git 与 SVN 及核心命令总结(附SourceTree)

在上一篇 我们介绍了 Git 及它支持的通信协议,这篇我们就来看看如何使用Git。1.Git 核心命令git 客户端安装(无脑下一步就行):官方客户端: httpsd://git-scm.com/downloads其它客户端:https://tortoisegit.org/download/1.1 配置管理在刚装完git的需要配置 email 和 name,然后才能使用 Git,那怎么配置呢?#查看所有配置信息git config -l#查看系统级别配置(git安装目

2021-03-13 23:57:31 25

原创 Maven 执行原理:生命周期、插件(及自定义插件示例)

现在有甲乙丙三个人,他们合作去开发一个购物网站:甲:订单处理模块乙:商品管理模块丙:其他模块每个人单独在自己的系统中进行开发,这时候最终需要把单个分散的系统整合成一个完成的,怎么办?Copy到一个人的机器上,大家眼睛都盯着这个电脑,然后啪啦啪啦copy。如果说在整合的时候,你发现哪个哥们他写的模块有问题。数据库的整合,订单模块里面的内容需要调用到商品模块的内容。当你中招了之后,这是好事,犯了错,才能解决嘛。纵观整个软件开发历史,也有几十年的历史了吧,当你现在的遇到的一些问题,我们

2021-03-13 23:52:08 31

原创 Maven 配置与依赖冲突问题

maven的理想:像一种什么设计模式?—模板方法模式自动走完标准的构建流程:清理 --> 编译 --> 測试 --> 报告 --> 打包 --> 部署统一入口,所有配置在一个pom里搞定1.maven生命周期、阶段maven有三个完全独立的生命周期(LifeCycle):Clean,Build,Site。每个生命周期都由一系列阶段(Phase)组成,执行其中某个阶段时,必须将当前周期的所有阶段执行完。LifeCycle和Phase具体的对应关系如下图:各个生.

2021-03-13 23:48:30 78

原创 Swagger 配置信息详解(涉及源码分析)

先来说说 Swagger 有什么用,相较于使用 markdown 或者 word 写接口文档,Swagger 自动生成 API 文档,然后在 web 端暴露,并且 API 文档与 API 定义同步更新,这解决了前后端交互时接口更改但协商不及时的问题。另外,Swagger 还内置了在线测试功能,使得开发与接口测试一条龙,因此 Swagger 现在被很多公司使用。Swagger 需要引入两个依赖包:<dependency> <groupId>io.springfox</

2021-03-13 23:47:02 105

原创 Swagger 常用主题、注解及具体实例(超全)

在上一篇我们详细的介绍了使用 Swagger 时需要做的配置,现在已经能得到一个我们自己想要的页面了但是,这也看不明白啊。。。接口连个中文说明都没有。。。所以,Swagger 提供了很多注解,就是让我们去为每个类、每个接口/参数、每个Model 写解释说明的。1.用于类的注解@Api:资源描述标识这个类是 Swagger 的资源,@Api(tags = "商户相关接口")@RestController@RequestMapping("/merchants")public class Mer

2021-03-13 23:45:01 56

原创 【SpringBoot】内嵌 Web 服务器原理:源码流程

1.内嵌Tomcat–jar包启动原理内嵌 tomcat 的启动流程大致如下:org.springframework.boot.SpringApplication#refreshContextorg.springframework.context.support.AbstractApplicationContext#refreshorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#onRef

2021-03-01 21:42:40 67

原创 【SpringBoot】启动原理(三):run 方法解析

run(String… args)解析1.run函数/*** Run the Spring application, creating and refreshing a new ApplicationContext*/public ConfigurableApplicationContext run(String... args) { //计时器 StopWatch stopWatch = new StopWatch(); stopWatch.start(); Conf

2021-03-01 21:42:24 69 1

原创 【SpringBoot】启动原理(二):构造 SpringApplication

进入SpringApplicationpublic static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return new SpringApplication(primarySources).run(args);}我们根据DemoApplication跟进代码,发现其调用的SpringApplication类的run方法。这个方法就干了2件事:一

2021-03-01 21:42:03 8

原创 【SpringBoot】启动原理(一):Jar 启动实现

概述Spring Boot 提供了 Maven 插件 spring-boot-maven-plugin,可以方便的将 Spring Boot 项目打成 jar 包或者 war 包。考虑到部署的便利性,我们绝大多数 99.99% 的场景下,我们会选择打成 jar 包。这样,我们就无需在部署项目的服务器上,配置相应的 Tomcat、Jetty 等 Servlet 容器。下面,我们来打开一个 Spring Boot jar 包,看看其里面的结构。如下图所示,一共分成四部分:Spring Boot ja

2021-03-01 21:41:46 91

原创 【SpringBoot】自动装配原理(三):ConfigurationClassBeanDefinitionReader 过滤条件注解

条件注解条件注解是Spring4提供的一种bean加载特性,主要用于控制配置类和bean初始化条件。在springBoot,springCloud一系列框架底层源码中,条件注解的使用到处可见。不少人在使用@ConditionalOnBean注解时会遇到不生效的情况,依赖的 bean 明明已经配置了,但就是不生效。到底@ConditionalOnBean和bean加载的顺序有没有关系呢?跟着源码,一探究竟。问题演示:@Configurationpublic class Configuration1

2021-03-01 21:41:32 55 2

原创 【SpringBoot】自动装配原理(二):AutoConfigurationImportSelector 的 selectImports

AutoConfigurationImportSelector该类实现ImportSelector接口,最重要的是实现selectImports方法,该方法的起到的作用是,根据配置文件(spring.factories),将需要注入到容器的bean注入到容器。selectImports public String[] selectImports(AnnotationMetadata annotationMetadata) { if (!isEnabled(annotationMetadata))

2021-03-01 21:41:10 387 2

原创 【SpringBoot】自动装配原理(一):AutoConfigrationImportSelector 回调流程

自动装配自动装配功能总体来说由 @EnableXXX注解 + @Import再配合@Conditional注解可以实现条件自动装配在SpringBoot中核心注解为@EnableAutoConfiguration@EnableAutoConfiguration通常情况下,springBoot应用启动类不会直接标注此注解,而是通过@SpringBootApplication注解来实现:发现 @SpringBootApplication中包含了 @SpringBootConfiguration

2021-03-01 21:40:51 71

原创 【SpringBoot】如何实现自定 starter

Starter是Spring Boot中的一个非常重要的概念,Starter 相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。比如我们在Maven的依赖中加入spring-bootstarter-web 就能使项目支持 Spring MVC,并且 Spring Boot 还为我们做了很多默认配置,无需再依赖spring-web、 spring-we

2021-03-01 21:40:15 32

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除