自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jagger的博客

天道酬勤

  • 博客(26)
  • 收藏
  • 关注

原创 Tomcat源码解析:请求处理过程

文章目录前言建立Socket连接发布PollerEvent事件处理PollerEvent事件读取Socket数据解析Http数据匹配servlet调用servlet创建filter调用链调用Filter调用servlet总结我们都知道,一个http请求过程一般为浏览器发送请求->建立socket连接->通过socket读取数据->解析http数据->调用后台服务完成响应,而对于Tomcat来说,着重点在建立socket连接->通过socket读取数据->解析http数据

2020-06-28 10:59:03 566 2

原创 Tomcat源码解析:启动

文章目录1.Catalina开启start2.Server启动3.Service启动3.1 Engine启动3.2 Host3.2.1 Host的初始化3.2.2 Host的启动3.2.3Pipeline启动3.2.4 HostConfig3.3 Context3.3.1 Context的启动3.3.2 ContextConfig3.3.2.1 Wrapper的启动3.3.2.2 加载静态文件3.3.2.3 设置ServletContainerInitializer3.3.3 调用ServletContai

2020-06-24 16:24:31 464

原创 Tomcat源码解析:初始化

文章目录BootstrapinitloadCatalinaloadDigesterinitServer初始化Service初始化Engine初始化Connector初始化ProtocolHandler初始化Endpoint初始化Bootstrap启动Tomcat只需要执行Bootstrap中的#main方法即可。public static void main(String[] args) { Bootstrap bootstrap = new Bootstrap(); bootst

2020-06-24 16:18:55 413

原创 Tomcat源码解析:环境搭建

下载源码从github下载tomcat源码git clone https://github.com/apache/tomcat.git或者直接fork一份到自己仓库,以便后续添加注释,附上笔者自己的tomcat地址https://github.com/jaggercoders/tomcat.gitMAVEN构建因为本人习惯使用maven,所以将源码转为maven工程,新建pom.xml<?xml version="1.0" encoding="UTF-8"?><projec

2020-06-24 16:15:24 295

原创 SpringBoot集成neo4j示例

文章目录SpringBoot集成neo4j配置测试neo4j cypher常用语法创建创建node创建relationship查询1.查询节点2.查询两个节点的关系3.限制路径查询条件删除补充1.MATCH与OPTIONAL MATCH的区别2.常用的relationship函数SpringBoot集成neo4j配置xml配置:<dependency> <gr...

2019-10-12 10:58:19 2127

原创 使用DockerCompose部署SpringBoot项目

文章目录环境准备构建Docker镜像docker command构建maven插件构建Docker Compose构建docker-compose 文件run docker-compose扩展环境准备首先需要安装Docker环境,如果是Mac或者Windows系统可从官网直接下载Docker Desktop,Linux用户可参考官网的安装示例。准备两个SpringBoot项目demo和de...

2019-08-01 15:22:17 420

原创 Spring IOC源码分析二:Spring refresh上-@Configuration、@Component、@Bean

文章目录1.prepareRefresh3.prepareBeanFactory4.postProcessBeanFactory5.invokeBeanFactoryPostProcessors执行BeanFactoryPostProcessorsConfigurationClassPostProcessorpostProcessBeanDefinitionRegistry方法解析@Configu...

2019-07-05 10:40:55 475 2

原创 mysql8.0.11 datetime精度丢失的问题

序测试接口时,代码中使用LocalDateTime.now()生成时间戳,并insert到db中类型为datetime的字段中,查看db后发现存入的时间与系统生成的时间不同,多了一秒,打断点发现new 出来的Date为2019-06-14 13:02:58.789,存入的数据为2019-06-14 13:02:59。经过排查解决后,记录一下此次问题。排查思路首先这很明显可以看出是因为时间的精...

2019-06-14 17:32:28 2890 1

原创 Spring IOC源码分析四:@Autowired

文章目录测试用例源码分析1.注册AutowiredAnnotationBeanPostProcessor-beanDefinition2.实例化AutowiredAnnotationBeanPostProcessor3.调用AutowiredAnnotationBeanPostProcessor作为MergedBeanDefinitionPostProcessor作为InstantiationAw...

2019-04-17 15:43:05 885

原创 Spring IOC源码分析三:Spring refresh下-实例化bean

文章目录7.initMessageSource8.initApplicationEventMulticaster9.onRefresh10.registerListeners11.finishBeanFactoryInitializationcreate Bean Instancefactory instantiate beanautwire instantiate beandefault ins...

2019-04-04 15:10:21 566 1

原创 Spring IOC源码分析一:注册beanDefinition

文章目录前言容器初始化AnnotationConfigApplicationContext测试用例解析并注册bean definitionregisterBeanscanBean前言本篇文章的主要目的是梳理Spring 容器启动时bean 加载的主流程和相关核心逻辑。本篇文章主要分析以注解的方式加载bean,以容器初始化singleton bean为主流程,singleton bean在容器...

2019-04-04 14:58:07 2542

原创 手撸一个spring cloud openFeign

最近在看spring-cloud-openFeign的源码,为了帮助理解流程,手撸了一个基于github.feign的简化版的spring-cloud-openFeign,如果对feign工作原理不明白的,建议先看上一篇文章spring-cloud-openFeign源码深度解析 https://blog.csdn.net/sinat_29899265/article/details/865779...

2019-01-22 15:27:10 302

原创 spring-cloud-openFeign源码深度解析

如何使用spring cloud feign@SpringBootApplication@EnableFeignClientspublic class WebApplication { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } @Fe...

2019-01-21 16:43:40 6900 7

原创 spring boot @value 取不到.properties的值

最近我们组在为别的组提供api接口,需要通过@value取到properties里配置的超时时间,结果怎么设置都取不到,而通过@ConditionalOnProperty或者@ConfigurationProperties,都可以成功取到,最后在坚持不懈的努力下,找到了原因,因为那个项目用到了shiro,而shiro有个配置和@value正好冲突了。@Beanpublic Lifecycle...

2018-12-24 13:33:05 4745

原创 SpringBoot集成mybatis使用HikariCP多数据源配置

SpringBoot集成mybatis使用HikariCP自定义多数据源之前分享了SpringBoot集成mybatis使用durid自定义多数据源配置,因为spring boot的版本是1.5.9,所以采用了durid连接池进行配置,后来由于项目升级为2.+,而spring boot的2.+版本集成了Hikari作为连接池,所以研究了一下写法。1.首先配置application.proper...

2018-11-02 09:15:38 12957 2

原创 SpringBoot集成mybatis使用durid多数据源配置

SpringBoot集成mybatis自定义多数据源配置1.首先配置application.yml。因为spring官方没有提供和durid集成,所以这部分也需要自定义配置。datasource: local: url: jdbc:mysql://127.0.0.1:3306/my_dev?autoReconnect=true&amp;amp;useUnicode=true...

2018-09-17 16:21:26 6211 2

原创 Spring Security 4.x -> 5.x 踩坑记录

1. AuthenticationManager无法自动注入在实现AbstractAuthenticationProcessingFilter重写以用户名、密码认证时,需要显示注入AuthenticationManager,不然会报如下错误:Caused by: org.springframework.beans.factory....

2018-09-17 15:33:25 2884

原创 Lombok集成spring boot遇到的坑

最近有同事在spring boot中用Lombok @Data注解时遇到了一个奇怪的问题,然后有幸一起研究了一下,把研究成果记录下来。问题先上代码:@Datapublic abstract class TestAbstract { private RedisTemplate redisTemplate; public TestAbstract(RedisT...

2018-09-07 11:27:49 15315

原创 elasticsearch5.6.1.集成springboot 遇到的坑

spring boot 集成redis和elasticsearch遇到的坑起因是因为我在一个已经集成了redis的spring boot项目上引入了spring-data-elasticsearch包,配好环境之后开始报如下的错误。 Failed to instantiate [org.elasticsearch.client.transport.TransportClient]: F...

2018-08-17 09:15:50 9590 6

原创 深入Java虚拟机笔记--Java8内存结构

我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖用户线程的启动和结束而建立和销毁。在《Java虚拟机规范(Java SE 8)》中描述了JVM运行时内存区域结构如下: 图片来源于网上。程序计数器(Program Counter R...

2018-07-11 17:10:06 1138

原创 Spring Security详解(四)认证之鉴权

4 鉴权从Spring Security的过滤器链中,我们已经发现位于最后的FilterSecurityInterceptor是用来进行权限认证的,这一节将详细分析Spring Security是如何进行权限认证的。4.1 FilterSecurityInterceptor源码分析:public class FilterSecurityInterceptor exten...

2018-06-22 20:08:49 28869 10

原创 Spring Security详解(三)认证之核心过滤器

这章主要用来分析Spring Security中的过滤器链包含了哪些关键的过滤器,并且各自的作用是什么。3 核心过滤器3.1 概述Filter顺序Spring Security的官方文档向我们提供了filter的顺序,无论实际应用中你用到了哪些,整体的顺序是保持不变的: - ChannelProcessingFilter,重定向到其他协议的过滤器。也就是说如果你访问的...

2018-06-22 20:08:03 7056

原创 Spring Security详解(二)认证之核心配置详解

文章目录2.核心配置详解2.1 测试用例2.2 @EnableWebSecurityWebSecurityConfigurationSpringWebMvcImportSelectorEnableGlobalAuthentication2.3 @EnableGlobalMethodSecurityGlobalMethodSecuritySelectorGlobalMethodSecurityConfiguration2.4 SecurityBuilderWebSecurityHttpSecurityAu

2018-06-22 14:35:17 17362 4

原创 Spring Security详解(一)认证之核心组件和服务

文章目录什么是Spring Security验证?1.核心组件1.1 SecurityContextHolder1.2 Authentication1.3 UserDetails 和 UserDetailsService1.4 UserDetailsService1.5 AuthenticationManager1.6 AuthenticationProvider1.7 总结什么是Spring Security验证?让我们考虑一个大家都很熟悉的标准的验证场景。提示用户输入用户名和密码进行登录。该

2018-06-22 14:34:22 19247 8

原创 队列的基础知识和实现

写在前面的话:    最近重温了一下基于C++的数据结构和算法,用java简单的实现了几种数据结构,特此记录下来,方便查阅。队列:队列是限制结点插入操作固定在一端进行,而结点的删除操作固定在另一端进行的线性表。允许插入的一端称为队头,允许删除的一端称为队尾。队头和队尾各用一个”指针”指示,称为队头指针和队尾指针.不含任何结点的队列称为”空队列”.队列的特点是结点在队列中的排队次序和出队次序按进队时...

2018-03-27 20:34:06 254

原创 HashMap源码分析(一)

写在前面的话:    最近在网上看了不少有关于hashMap的源码解析,但是大部分都只是整个把源码贴出来后加了几句注释,感觉不是很容易理解,所以自己写了一篇解析,把自己的理解记录下来,加深理解,也方便以后查阅,欢迎诸位指正。    本次源码基于jdk1.8。解析思路:   源码一般不太容易理解,说一下我阅读源码的方式吧。  1.首先我会先写一个example,根据debug调试一步一步查看。  2...

2018-03-27 19:17:57 211

空空如也

空空如也

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

TA关注的人

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