自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Clion远程调试JDK

主要讲解linux环境编译,windows使用clion编辑器启用远程调试。

2023-07-07 11:14:01 304

原创 OpenJdk8编译

操作系统: windows的wsl系统,使用 ubuntu20jdk版本: jdk8官方文档:注: 不同的linux版本下可能部分依赖存在不同,具体参考官方文档。

2023-07-07 11:06:40 291

原创 Spring Security中的DaoAuthenticationProvider

看一看这个DaoAuthenticationProvider是从哪里配置来的,这个得从WebSecurityConfigurerAdapter说起。在WebSecurityConfigurerAdapter中,以下代码之前都看过,AuthenticationManager 的由来也都说明过,其中有一个parent被所有的子AuthenticationManager共享,而这个DaoAuthenticationProvider就是包括在parent中,AnonymousAuthenticationProv

2020-10-12 14:25:00 3991

原创 Spring Security用户名密码认证以及基本认证

用户名密码认证是最常用的认证方式之一,

2020-10-11 09:25:19 1306

原创 Spring Security认证源码准备

上一篇博客说完了Spring Security是如何构建这样一个安全拦截的体系的,这篇博客就来谈一谈是如何进行认证的。和之前一样,和官方文档同步讲解,在梳理认证的流程之前,需要把其中的几个重要的角色先理明白了。首先是SecurityContextHolder如图,...

2020-09-27 09:30:33 256

原创 Spring Security源码入门过滤器Filter

Spring Security作为一个安全框架,主要有登录、认证等功能,而要实现这一系列的功能,在一个基于Servlet的应用上,当然会从Filter上入手。这篇博客主要就是根据官网文档讲解Spring Security怎么通过Filter构建这样一个安全拦截的功能的。首先看看以下这幅图,这个流程用过spring mvc的都很熟悉,这就是filter的一个过滤流程,spring mvc中通常都会有一个Filterchain包含了一个Filter列表,对于每个拦截的请求依次过滤了解了spring.

2020-09-21 09:24:11 907

原创 Netty源码 Bootstrap

一定要先看完Netty源码 ServerBootstrapBootstrap相对于ServerBootstrap来说就是一个客户端连接的启动器,两着都继承自AbstractBootstrap,因此大部分的逻辑基本相似,这里主要就是大致说一说Bootstrap对于ServerBootstrap的一些区别。同样从example代码开始private static final UptimeClientHandler handler = new UptimeClientHandler(); p

2020-08-06 13:16:41 128

原创 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 310

原创 Netty 源码之NioEventLoopGroup

在我们写一个netty服务端程序的时候,一般都会定义两个NioEventLoopGroup,这篇博客就来分析分析NioEventLoopGroup的构成和作用。先看一看类结构图在新建一个NioEventLoopGroup的时候,调用的是MultithreadEventExecutorGroup父类的构造方法方法中最重要的代码如下,新建一个ThreadPerTaskExecutor,传入一个DefaultThreadFactory//当前没有executor,就创建一个默认的Thread

2020-07-31 13:41:28 197

原创 spring源码(四)事务

spring事务相对于编程式的事务,基本用的都是声明式事务,这篇文章讲的也就是声明式事务是如何实现的。想要开启声明式事务,首先需要使用@EnableTransactionManagement注解,所以分析spring事务的源码就从分析这个注解开始。点开注解可以看到很熟悉的@Import导入,导入的类是TransactionManagementConfigurationSelector,这个从名字基本就可以看出是一个ImportSelector的导入类。TransactionManagementC

2020-07-22 12:23:42 119

原创 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 180

原创 spring boot源码 (一)启动过程

当前文章基于spring boot 2.3版本。首先spring boot就是一个约定大于配置的简化开发的一个框架,如果看spring boot的源码,我觉得有两个方向,一个方向就是spring boot基于spring容器以及自身的一些启动的过程,另外一个就是约定大于配置这个目的实现代码。

2020-06-23 13:27:05 235 1

原创 spring boot源码(二) autoconfigure

spring boot 通过@EnableAutoConfiguration开启autoconfigure功能。点开注解,可以看到有一个@Import注解,AutoConfigurationImportSelector,实现了DeferredImportSelector接口,DeferredImportSelector和ImportSelector有所区别,DeferredImportSelector将会执行DeferredImportSelector.Group中的process方法,并且接着调用

2020-06-23 13:26:50 219

原创 spring 源码(二) 注解扫描的过程

在之前的博客中,分析bean扫描的时候,看到这个过程是在ConfigurationClassPostProcessor这个后置处理器中执行的,这里来仔细分析一下其中的过程。首先进入ConfigurationClassPostProcessor这个类,找到processConfigBeanDefinitions方法,在这个方法中,会创建一个ConfigurationClassParser类,调用paser方法,传入javaconfig的配置类,这个配置类在spring容器最开始的代码register方法中

2020-06-23 13:26:33 637

原创 Spring源码分析(一)IoC容器

Spring Framework,也就是我们常说的Spring框架,我觉得其中最核心的部分应该就是IOC容器了,Spring的IOC容器的实现也叫做DI,也就是依赖注入。这篇博客要说的就是这其中的大概的实现过程。

2020-06-01 13:11:55 412

原创 mybatis源码分析(二) 执行过程

这边博客衔接上一篇mybatis的xml解析的博客,在xml解析完成之后,首先会解析成一个Configuration对象,然后创建一个DefaultSqlSessionFactory的session工厂。在这一切的准备过程完成之后,就可以开始对数据库的操作了。...

2020-05-17 18:45:00 535

原创 mybatis源码分析(一) 配置文件的解析过程

mybatis框架有两个非常重要的xml文件,一个是mybatis的config文件,一个就是mapper文件,mybatis会根据config的xml文件去生成一个Configuration类,在这个过程中也会根据配置的mapper文件生成MappedStatement,这篇博客探究的就是这样一个过程

2020-05-12 13:29:43 186

原创 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 295

空空如也

空空如也

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

TA关注的人

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