- 博客(8)
- 收藏
- 关注
原创 Nginx Http模块是如何处理请求的?
1.概述 HTTP模块是Nginx的核心模块,当一个请求被内核接收之后就会交给HTTP模块进行处理了。HTTP模块的配置块有http、server和location,其嵌套关系是server嵌套在http块里面,location嵌套在server里面,而且location里面还可以嵌套location。 在Nginx中大体上可以分为2类指令,分别是值指令(存储配置项的值)和动作指令(指定行为的),值指令可以合并,而动作类指令不可以合并。存储值的指令继承规则是向上覆盖,也就是说子配
2022-07-09 00:38:21 1162 1
原创 SpringBoot日志解析(十四)
从日志框架角度来看日志分为日志实现框架和日志门面框架。实现框架主要有log4j、log4j2、JUL和Logback;日志门面框架主要JCL和slf4j。SpringBoot默认使用的式slfj+logback。 首先在门面框架中定义一个接口LoggerFactoryBinder,所有的实现框架必须实现这个接口,而且实现类必须具有相同的类名和包路径org/slf4j/impl/StaticLoggerBinder。这样日志门面框架就可以根据该路径去寻找日志实现框架。 Spring
2022-07-05 09:45:09 179
原创 SpringBoot Webflux解析
1. Webflux介绍 Webflux是一种异步非阻塞的IO模型,当有请求过来时,它会将请求交由worker线程去处理,这样就可以极大的提升吞吐量,所以他比较适合用于IO密集型的场景。 webflux虽然可以给我带来吞吐量的提升,但是同时也带了一些问题,如调试困难,有一定的学习成本,此外目前仅有少数数据库支持异步非阻塞查询,如redis支持,而mysql不支持。它使用netty作为服务端框架,网络通信性能很高,但是我们在准备引入该技术的时候也需要十分谨慎。在SpringBoot
2022-07-03 16:42:07 5230
原创 SpringBoot Mybatis Starter 解析
我们知道Mybatis有两大核心组件:SqlSessionFactory和Mapper接口。该starter可以帮助我们自动完成SqlSessionFactory和Mapper的装配与注入,可以极大的简化我们的开发难度,提高开发效率。Mybatis-starter主要完成以下功能: 从该模块的pom文件可以看出,它里面引入了mybatis-spring-boot-autoconfigure依赖,由此我们可以知道在该依赖的META-INF目录下的spring.factories中配置了Enabl
2022-06-30 21:06:06 2400
原创 SpringBoot Starter解析
Conditional注释是一种基于条件的注解,也就是根据某一个特定条件来决定是否创建某个特定的Bean,这是SpringBoot实现自动装配的基础原理。常见的Conditional注解主要有:在@Conditional注解里面有一个方法value,它要求value是一个Condition类型。Condition是一个接口,它里面只定义一个方法matches,如果该方法返回true就创建bean,false就不创建bean。因此我们自己也可以自定义自己的Conditional,具体步骤如下:Starter是
2022-06-29 14:59:24 212
原创 Servlet容器启动解析
1. Servlet Web环境介绍目前web环境主要有Servlet和Rective,而大部分web应用使用的还是Servlet容器,web服务器又主要以Tomcat为主。所以接下来我会以Servlet容器作为解析重点。2. 容器启动主要流程从下图我们可以看出Servlet的启动流程从SpringApplication的初始化到运行run方法,再到AbstractApplicationContext的refresh方法。详细流程参考下图:3. Web容器工厂类加载解析我们知道在createWebServe
2022-06-28 10:46:06 624
原创 SpringBoot之系统初始化器(一)
ApplicationContextInitializer作为SpringBoot的系统初始化器,我们先来知其所以然,而后知其然。ApplicationContextInitialializer是在Spring Context刷新之前初始化Spring ConfigurableApplicationContext的回调接口。通常用于需要通过编程初始化应用上下文的web应用中。例如,针对上下文环境注入属性或者激活配置。此外,所有实现了ApplicationContextInitializer接口的类还可以通过
2022-06-27 17:53:49 511 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人