- 博客(18)
- 收藏
- 关注
原创 OpenJdk8编译
操作系统: windows的wsl系统,使用 ubuntu20jdk版本: jdk8官方文档:注: 不同的linux版本下可能部分依赖存在不同,具体参考官方文档。
2023-07-07 11:06:40 519
原创 Spring Security中的DaoAuthenticationProvider
看一看这个DaoAuthenticationProvider是从哪里配置来的,这个得从WebSecurityConfigurerAdapter说起。在WebSecurityConfigurerAdapter中,以下代码之前都看过,AuthenticationManager 的由来也都说明过,其中有一个parent被所有的子AuthenticationManager共享,而这个DaoAuthenticationProvider就是包括在parent中,AnonymousAuthenticationProv
2020-10-12 14:25:00 4720
原创 Spring Security认证源码准备
上一篇博客说完了Spring Security是如何构建这样一个安全拦截的体系的,这篇博客就来谈一谈是如何进行认证的。和之前一样,和官方文档同步讲解,在梳理认证的流程之前,需要把其中的几个重要的角色先理明白了。首先是SecurityContextHolder如图,...
2020-09-27 09:30:33 306
原创 Spring Security源码入门过滤器Filter
Spring Security作为一个安全框架,主要有登录、认证等功能,而要实现这一系列的功能,在一个基于Servlet的应用上,当然会从Filter上入手。这篇博客主要就是根据官网文档讲解Spring Security怎么通过Filter构建这样一个安全拦截的功能的。首先看看以下这幅图,这个流程用过spring mvc的都很熟悉,这就是filter的一个过滤流程,spring mvc中通常都会有一个Filterchain包含了一个Filter列表,对于每个拦截的请求依次过滤了解了spring.
2020-09-21 09:24:11 1044
原创 Netty源码 Bootstrap
一定要先看完Netty源码 ServerBootstrapBootstrap相对于ServerBootstrap来说就是一个客户端连接的启动器,两着都继承自AbstractBootstrap,因此大部分的逻辑基本相似,这里主要就是大致说一说Bootstrap对于ServerBootstrap的一些区别。同样从example代码开始private static final UptimeClientHandler handler = new UptimeClientHandler(); p
2020-08-06 13:16:41 171
原创 Netty源码 ServerBootstrap
Netty是一个异步事件驱动的网络应用程序框架,基于java的NIO,这篇文章先来看看Server服务器整体的启动流程。先看一看官网的Demo代码,从构建一个ServerBootstrap类开始。 // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup();
2020-08-04 13:40:37 365
原创 Netty 源码之NioEventLoopGroup
在我们写一个netty服务端程序的时候,一般都会定义两个NioEventLoopGroup,这篇博客就来分析分析NioEventLoopGroup的构成和作用。先看一看类结构图在新建一个NioEventLoopGroup的时候,调用的是MultithreadEventExecutorGroup父类的构造方法方法中最重要的代码如下,新建一个ThreadPerTaskExecutor,传入一个DefaultThreadFactory//当前没有executor,就创建一个默认的Thread
2020-07-31 13:41:28 240
原创 spring源码(四)事务
spring事务相对于编程式的事务,基本用的都是声明式事务,这篇文章讲的也就是声明式事务是如何实现的。想要开启声明式事务,首先需要使用@EnableTransactionManagement注解,所以分析spring事务的源码就从分析这个注解开始。点开注解可以看到很熟悉的@Import导入,导入的类是TransactionManagementConfigurationSelector,这个从名字基本就可以看出是一个ImportSelector的导入类。TransactionManagementC
2020-07-22 12:23:42 139
原创 spring (三) AOP源码
spring aop是spring框架的一大核心,用过spring的人应该对于这个内容不会感到陌生。但是,肯定会有人对于spring aop和aspectJ以及proxy和CGLIB比较混乱。动态代理java里面最常用的一般就是jdk的proxy接口代理,以及CGLIB的继承代理,而spring aop是基于这两种代理的一种封装,具体哪种代理可以根据配置选择,而aspectJ是一个第三方的代理框架,本身和spring毫无关系,但是由于可能是spring自觉的aspectJ比较人性化,所以spring将a
2020-07-04 21:52:29 211
原创 spring boot源码 (一)启动过程
当前文章基于spring boot 2.3版本。首先spring boot就是一个约定大于配置的简化开发的一个框架,如果看spring boot的源码,我觉得有两个方向,一个方向就是spring boot基于spring容器以及自身的一些启动的过程,另外一个就是约定大于配置这个目的实现代码。
2020-06-23 13:27:05 275 1
原创 spring boot源码(二) autoconfigure
spring boot 通过@EnableAutoConfiguration开启autoconfigure功能。点开注解,可以看到有一个@Import注解,AutoConfigurationImportSelector,实现了DeferredImportSelector接口,DeferredImportSelector和ImportSelector有所区别,DeferredImportSelector将会执行DeferredImportSelector.Group中的process方法,并且接着调用
2020-06-23 13:26:50 261
原创 spring 源码(二) 注解扫描的过程
在之前的博客中,分析bean扫描的时候,看到这个过程是在ConfigurationClassPostProcessor这个后置处理器中执行的,这里来仔细分析一下其中的过程。首先进入ConfigurationClassPostProcessor这个类,找到processConfigBeanDefinitions方法,在这个方法中,会创建一个ConfigurationClassParser类,调用paser方法,传入javaconfig的配置类,这个配置类在spring容器最开始的代码register方法中
2020-06-23 13:26:33 696
原创 Spring源码分析(一)IoC容器
Spring Framework,也就是我们常说的Spring框架,我觉得其中最核心的部分应该就是IOC容器了,Spring的IOC容器的实现也叫做DI,也就是依赖注入。这篇博客要说的就是这其中的大概的实现过程。
2020-06-01 13:11:55 450
原创 mybatis源码分析(二) 执行过程
这边博客衔接上一篇mybatis的xml解析的博客,在xml解析完成之后,首先会解析成一个Configuration对象,然后创建一个DefaultSqlSessionFactory的session工厂。在这一切的准备过程完成之后,就可以开始对数据库的操作了。...
2020-05-17 18:45:00 612
原创 mybatis源码分析(一) 配置文件的解析过程
mybatis框架有两个非常重要的xml文件,一个是mybatis的config文件,一个就是mapper文件,mybatis会根据config的xml文件去生成一个Configuration类,在这个过程中也会根据配置的mapper文件生成MappedStatement,这篇博客探究的就是这样一个过程
2020-05-12 13:29:43 210
原创 spring mvc源码分析(一) 请求的执行过程
这是个人的一个学习的经历。。。。。。spring mvc的版本是5.x的,sping mvc的入口是 DispatcherServlet 类 ,在之前的ssm项目中,我们是通过配置在web.xml中的servlet把请求的入口设置为DispatcherServlet,现在的版本官方不提倡编写web.xml,而是如下:public class MyWebApplicationInitial...
2020-05-08 14:10:45 318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人