- 博客(37)
- 问答 (1)
- 收藏
- 关注
原创 SpringBoot源码深度解析(九)内嵌Tomcat原理
SpringBoot 源码深度解析第八章 内嵌Tomcat原理文章目录SpringBoot 源码深度解析前言内嵌Tomcat自动配置原理SpringBoot启动内置tomcat流程前言内嵌Tomcat原理Spring Boot默认支持Tomcat,Jetty,和Undertow作为底层容器。而Spring Boot默认使用Tomcat,一旦引入spring-boot-starter-web模块,就默认使用Tomcat容器。内嵌Tomcat自动配置原理那些看似简单的事物,其实并不简
2021-08-06 08:16:31
532
原创 SpringBoot源码深度解析(八)自定义stater
SpringBoot 源码深度解析第七章 SpringApplicatioin初始化过程文章目录SpringBoot 源码深度解析前言前言上一章学习了自动配置的基本原理,那么从这章开始,我们来分析下SpringApplicatioin初始化过程...
2021-07-30 07:32:23
690
原创 SpringBoot源码深度解析(七)springBoot 依赖管理及自动配置
SpringBoot 源码深度解析第六章 springBoot 依赖管理文章目录SpringBoot 源码深度解析前言一、为什么导入dependency时不需要指定版本?二、三、前言一、为什么导入dependency时不需要指定版本?打开pom.xml文件:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pa
2021-07-22 22:10:04
421
原创 SpringBoot源码深度解析(六)springBoot 源码环境构建
SpringBoot 源码深度解析第五章 springBoot 源码环境构建文章目录SpringBoot 源码深度解析前言源码环境搭建前言从这章开始,我们来系统的学习一下spring Boot的源码,在学习源码之前,先来建立一套简单的源码环境源码环境搭建下载源码https://github.com/spring-projects/spring-boot/releases环境准备● JDK1.8+● Maven3.5+编译源码● 进⼊spring-boot源
2021-03-04 16:44:36
480
1
原创 SpringBoot源码深度解析(五)springBoot 日志管理
SpringBoot 源码深度解析第四章 springBoot 日志管理文章目录SpringBoot 源码深度解析前言一、日志框架介绍前言这一章主要介绍springBoot 日志管理一、日志框架介绍在项目的开发中,日志是必不可少的一个记录事件的组件,不管是记录运行情况还是追踪线上问题,都离不开对日志的分析,所以也会相应的在项目中实现和构建我们所需要的日志框架。而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、log
2021-03-04 16:15:34
416
1
原创 SpringBoot源码深度解析(四)属性注入
SpringBoot 源码深度解析第四章 SpringBoot 属性注入文章目录SpringBoot 源码深度解析前言一、属性注入二、属性注入常用注解三、@Value 属性注入前言一、属性注入使用Spring Boot全局配置文件设置属性时:如果配置属性是Spring Boot已有属性,例如服务端口server.port,那么Spring Boot内部会自动扫描并读取这些配置文件中的属性值并覆盖默认属性。如果配置的属性是用户自定义属性,例如刚刚自定义的Person实体类属性,还
2021-03-04 12:26:09
352
1
原创 SpringBoot源码深度解析(三)全局配置文件
SpringBoot 源码深度解析第三章 SpringBoot 全局配置文件文章目录SpringBoot 源码深度解析前言一、全局配置文件概述及优先级二、前言一、全局配置文件概述及优先级全局配置文件能够对一些默认配置值进行修改及自定义配置。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件:也可以从ConfigFileApplicationListener这类便可看出,其DEFAULT_SEARC
2021-02-28 20:52:10
226
原创 SpringBoot源码深度解析(二)SpringBoot基础
SpringDataJpa源码分析第九章 Spring Aop 源码解析(二)文章目录SpringDataJpa源码分析前言一、测试环境前言一、测试环境
2021-02-28 15:01:03
756
原创 SpringMVC源码分析(三)
SpringMvc源码分析第九章 Spring Aop 源码解析(二)文章目录SpringMvc源码分析前言一、前言这一章开始,我们来简单实现一个自定义的SpringMvc框架一、
2021-02-24 16:53:08
90
原创 SpringMVC源码分析(二)
SpringMvc源码分析第九章 Spring Aop 源码解析(二)文章目录SpringMvc源码分析前言一、监听器、过滤器和拦截器对比二、自定义拦截器三、multipart 文件上传四、springMvc 异常处理五、springMvc 重定向参数传递前言这一章来简单的介绍一下springMvc的高级应用一、监听器、过滤器和拦截器对比过滤器(Filter):对Request请求起到过滤的作用,作用在Servlet之前,如果配置为 /* 可以对所有的资源访问(servlet、js
2021-02-22 15:22:55
125
原创 SpringMVC源码分析(一)
Spring源码分析第九章 Spring Aop 源码解析文章目录Spring源码分析前言一、springMVC工作流程前言Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。现在越来越多的开发团队选择了Spring MVC。一、springMVC工作流程...
2021-02-19 17:19:01
107
原创 Spring源码分析(九)
Spring源码分析第八章 Spring 声明式事务的⽀持文章目录Spring源码分析前言一、Spring事务管理的两种方式二、事务的概念三、事务的四大特性三、事务的隔离级别四、事务的传播行为(一) PROPAGATION_REQUIRED1.调用方法不开启事物2.调用方法开启事物(二) PROPAGATION_REQUIRES_NEW1.调用方法不开启事物2.调用方法开启事物前言事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性。接下来,我们来详细分析一下Sp
2021-02-10 18:46:28
251
原创 Spring源码分析(八)
Spring源码分析第四章 Spring Ioc 循环依赖文章目录Spring源码分析前言一、Spring Bean创建流程前言一、Spring Bean创建流程
2021-02-07 08:02:55
185
原创 Spring源码分析(七)
Spring源码分析第四章 Spring Bean创建流程文章目录Spring源码分析前言一、Spring Bean创建流程前言上一章,我们分析了spring Ioc 容器的一个初始化流程,这一章,具体了解下Spring Bean对象的创建流程一、Spring Bean创建流程相信大家对下面这段代码并不陌生: public void refresh() throws BeansException, IllegalStateException { synchronize
2021-02-06 17:54:36
185
原创 Spring源码分析(六)
Spring源码分析第四章 文章目录Spring源码分析前言一、Spring IoC的容器体系二、前言一、Spring IoC的容器体系IoC容器是Spring的核⼼模块,是抽象了对象管理、依赖关系管理的框架解决⽅案。Spring 提供了很多 的容器,其中BeanFactory 是顶层容器(根容器),不能被实例化,它定义了所有 IoC 容器 必须遵从的⼀套原则,具体的容器实现可以增加额外的功能,⽐如我们常⽤到的ApplicationContext,其下更具 体的实现如ClassPat
2021-02-06 17:09:41
379
原创 Spring源码分析(五)
Spring源码分析第四章 Spring框架的Ioc实现(二)文章目录Spring源码分析前言一、前言上一章,我们回顾了一些Spring基础知识,这一章就来深入学习下Spring Ioc源码一、
2021-02-03 22:57:15
208
原创 Spring源码分析(三)
Spring源码分析第三章 手写Ioc和Aop文章目录Spring源码分析前言一、模拟业务场景(一) 功能介绍(二) 关键功能代码(三) 问题分析二、使用ioc和aop重构(一) 代理模式(二) 功能实现前言上⼀章我们理解了 IoC 和 AOP 思想,现在我们先忘掉ioc和Aop这两个思想,去实现⼀个『银⾏转账』的案例,在从这个案例中发现问题,提出问题,然后在原有基础上使用ioc和Aop进行解决一、模拟业务场景(一) 功能介绍业务场景:银行转账;具体描述:模拟银行单次转账操作,具体
2021-01-30 17:44:26
328
1
原创 Spring源码分析(二)
Spring源码分析第二章 spring核⼼思想文章目录Spring源码分析前言一、spring简介二、Spring 发展历程三、Spring 的优势四、Spring 的核⼼结构前言一、spring简介二、Spring 发展历程三、Spring 的优势四、Spring 的核⼼结构...
2021-01-29 13:29:59
178
原创 Spring源码分析(一)
Spring源码分析第一章 spring概述文章目录Spring源码分析前言一、spring简介二、Spring 发展历程三、Spring 的优势四、Spring 的核⼼结构前言MyBatis是目前非常流行的ORM框架一、spring简介Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 SpringMVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java E
2021-01-28 19:23:17
221
原创 Java类加载机制
简单来说,java类加载有以下几个过程: 加载->验证->准备->解析->初始化->使用->卸载一、加载: · 通过类的全限定名获取其自定义二进制流 · 将二进制流所代表的静态数据结构转化为方法区的运行时数据结构 · 在堆中生成一个class对象,作为方法区访问这些数据的数据入口 类加载器: ·引导类加...
2020-04-25 14:53:28
113
原创 SpringBoot源码深度解析(一)深入理解SpringApplication
对于每一个使用过SpringBoot/SpringCloud的程序员而言,下面这段代码可能大家都不陌生:public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); }}SpringApp...
2020-01-08 10:43:48
474
原创 基于docker的redis4.0单机集群搭建
一、安装docker1、查看linux内核版本uname -adocker 要求centos7在版本3.10之上,内核版本过低的百度一下,自己去更新2、安装必要的软件包yum install -y yum-utils device-mapper-persistent-data lvm23、设置yum源yum-config-manager --add-repo...
2020-01-02 12:17:54
378
原创 Jenkins + Docker + SVN + Maven 持续集成环境搭建过程中遇到的问题
一、安装Docker-Compose第一种方式:1.下载二进制文件sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose2.对二进制文件添...
2019-12-25 11:36:09
574
原创 Nginx学习系列六——Nginx官方模块
nginx官方模块大体上就是nginx安装时带的默认的一些模块ps :此处mark一个Linux ps 相关基础命令的地址https://www.cnblogs.com/robertoji/p/5555449.html1、--with-http_stub_status_modulenginx 处理当前连接的状态,用于监控nginx当前连接的信息配置语法相当简单,不过多阐述...
2019-05-15 13:33:45
424
原创 Nginx系列学习五——Nginx日志
一、nginx日志类型1、error.log主要是记录nginx处理http请求的错误状态,以及nginx服务运行的错误状态配置路径:warn:指的是日志错误等级2、access_log记录nginx的每次HTTP请求的访问状态( 1 ) log_format 配置语法:log_format name [escape=default|json] str...
2019-04-25 13:06:16
121
原创 Nginx学习系列四——nginx虚拟主机
假设现在有这么一个场景,你有多套业务场景需要对应多个nginx来实现,这个时候,你或许会选择这样一个搭建形式: 服务器1———— nginx1 ———— 业务服务1 服务器2 ———— nginx2 ———— 业务服务2 服务器3 ———— nginx3 ———— 业务服务3这种配置方式貌似可以解决你的问题,但是呢,这种配置方式会造成大幅...
2019-04-24 13:17:57
189
原创 Nginx学习系列三——HTTP请求
一、定义 HTTP协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器我们可以这么操作一波在服务器中使用curl命令来请求一波地址:curl -v http://www.baidu.com >/dev/null返回的内容如下所示:...
2019-04-15 13:35:51
210
原创 nginx学习系列二——nginx默认配置详解
先放一张图来吧,开撸 首先我们先不看第一行,我们先看include /etc/nginx/conf.d/*.conf 这一行,这一行就是加载了这个目录下的所有以.conf后缀为结尾的所有conf文件。所以说,任务加倍了,我们得研究两个文件先说第一个这个文件,大体可分为三大块:第一部分:主要是配置nginx日志、线程、nginx使用用户,服务启动时的pid等一...
2019-04-15 13:13:16
180
原创 Nginx 系列学习之——多路IO复用
ps:最近在学习nginx,为防止一些定义混淆或是遗忘,也是为了方便未来应对相关业务场景时的翻阅,于是特地来csdn上记录一些新学习到的知识技术,以便成长。文章内部或许会引用许多百度上的相关知识内容、博客或百科的文章片段,在下提前在这里对大家说声抱歉....首先介绍下几个定义1、IO多路复用 什么是IO多路复用呢?我们先假设这样一个场景,假设你现在有一个网站,某一天有一大群人突...
2019-04-12 09:11:22
1355
原创 Nginx基本配置(PHP)
老哥最近在研究PHP ,项目经理要我从wnmp开始搭建,搭建过程中遇到了很多坑。。这里就不一一叙述了。其中nginx是第一次接触,详细配置文件如下:#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.lo...
2017-09-05 12:34:18
195
原创 使用JavaMail简单的发送邮件
使用JavaMail简单的发送邮件一、JavaMail简介 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。二、简单使用 import java.io.File; import java.io.IOException;
2017-08-08 13:05:44
341
原创 shiro 权限控制框架 入门级实例(二)注册加密
shiro 权限控制框架 入门级实例 注册加密上文完成了基本的加密登录验证,那么接下来我们来看下注册模块。ps:写在代码之前: 登录、注册两大模块基本是贯穿了我们学习技术的过程,从最开始的jdbc+servlet+jsp开发登录注册demo,一直到各种各样的框架搭建整合开发登录注册模块。从最开始单用户明文登录,一直到现在的多用户加密登录验证,这期间我
2017-08-04 15:48:39
372
原创 shiro 权限控制框架 入门级实例(一)加密、登录验证
shiro 权限控制框架 入门级实例 加密、登录验证 应项目要求,最近详细了解了下shiro权限控制框架,从一脸懵逼到略有所得再到啥也不会,我还是走了许多弯路。。。感慨天真无知太年轻,基础较为薄弱的我,很多东西研究了好久才弄明白些,怕自己太浪哪一天忘了怎么用了,遂来到这里,写篇博文,以为记。直接上代码:一、控制层@Controllerpublic
2017-08-04 14:40:38
440
原创 MyBatis mapper.xml 详解
MyBatis mapper.xml 详解mybatis提供了极为强大的映射语句,下面我们就具体看看:一、 mybatis中提供了namespace用于绑定dao层接口,也就是所谓的面向接口编程当你在“”中绑定了接口全路径,mybatis会自动匹配找到需要执行的SQL语句。二、功能强大的resultMapmybatis提供了resultMap作为与数据库交互
2017-07-27 16:27:08
603
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人