自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot运行流程源码分析

SpringBoot的run方法执行流程

2024-07-24 10:07:23 1133

原创 SpringBoot源码分析

使用SpringBoot的时候,我们只需要引入对应的Starters,SpringBoot启动时便会自动加载相关依赖,配置相应的初始化参数,以最快捷、简单的形式对第三方软件进行集成,这便是SpringBoot的自动配置功能。上面的注册完成之后,在加载的过程中会使用元数据的配置进行过滤,对应的配置内容在META-INF/spring-autoconfigure-metadata.properties文件中。AnnotationMetadata内包含了被@Import注解的类的注解信息。主要是用来导入配置类。

2024-07-23 20:14:00 696

原创 当应用程序含有事务管理时,xmlApplicationContext的调试

读取通知配置的类是:TxAdviceBeanDefinitionParser。这个类将xml中配置的通知标签读取到bean定义中去,也就是将事务属性读取到bean定义中。

2024-01-07 09:45:12 874

原创 spring基于注解的事务管理器自动配置实现分析

这个方法是一个嵌套调用方法,从TransactionManagementConfigurationSelector读取到两个配置类:org.springframework.context.annotation.AutoProxyRegistrar和org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration之后,会以这两个类为参数继续调用这个方法解析bean。

2024-01-07 09:42:32 786

原创 手动配置Spring AOP的源码分析

获取通知的过程就是将通知的名字传给beanFactory,调用它的getBean方法获取bean,为什么ProxyFactoryBean能有beanFactory的引用,因为其实现了BeanFactoryAware接口,当spring创建完ProxyFactoryBean的实例后,会调用后处理器方法设置spring容器到proxyFactoryBean对象的引用中。从上面的逻辑可以看出,CglibAopProxy的代理对象生成通过设置增强器的属性, 设置拦截器,实现对目标对象方法调用的拦截。

2024-01-07 09:41:13 929

原创 Spring Mvc请求处理过程分析 --- 参数解析

分析spring对请求体为json请求参数的解析过程

2024-01-07 09:27:02 967 1

原创 AnnotationConfigApplicationContext的实例化分析

spring源码分析

2023-10-05 08:36:48 196

原创 编译原理上下文无关文法 2.6 词法分析 2.7符号表

2.6 词法分析词法分析器:读入输入串,将其转换成被语法分析器分析的记号流。词法分析器的一些功能:2.6.1 剔除空白符和注释如果词法分析器消除了空白符,语法分析器就不必再考虑空白符。修改文法使得语法中包含空白符的做法实现起来很难。2.6.2 常数举例子,单个数字和数字序列都是整数,如何识别出来,作为一个记号(如num),记号的属性就是识别出来的整数的值。2.6.3 识别标识符和关键字程序设计语言使用标识符作为变量名、数组名、函数名和一些其他的语言对象名。文法常把标识符作为记号处理。基于这类

2022-04-23 14:35:53 1307

原创 编译原理 上下文无关文法

1.定义术语术语含义非终结符语句或者表达式终结符关键字或者符号,也称为记号产生式由左部和右部组合而成记号串零个或多个记号的序列。空串包含零个记号串的记号串上下文无关文法包含如下四个部分;一个记号集合,称为终结符号一个非终结符集合一个产生式集合。每个产生式具有一个左部和一个右部,左部和右部由箭头连接,左部是一个非终结符。右部是记号和(或)非终结符序列一个开始符号。开始符号是一个指定的非终结符上下文无关文法的作用是:描述语言的语法。

2022-04-21 16:28:02 6206

原创 GreenPlum企业级应用实战 第四章 数据字典详解

4.1 oid无处不在oid是递增的,每一个表空间、表、索引、数据文件名、函数、约束等都对应有一个唯一标识的oid。全局递增。select attrelid::regclass,attnamefrom pg_attribute a, pg_class bwhere a.attrelid = b.oidand b.relnamespace=11and atttypid=26and b.relstorage='h'and attname='oid'and b.relname not like

2022-03-14 07:57:47 640

原创 Greenplum日志分析案例(GreenPlum企业级应用实战书)

3.2 日志分析是网站分析的基础,通过对网站浏览的日志进行分析,可以为网站优化提供数据支持,了解用户群以及用户浏览特性。3.2.1 应用场景描述分析全站每分钟的PV、UV,并导出到Excel中,画出折线图解析uRL,获取URL中的参数列表。通过URL取得member_id,然后统计当天浏览次数的用户分布,如分布在某个区间的用户分别有多少人。3.2.2 数据demo建表:drop table if exists log_path;create table log_path( log_tim

2022-03-12 11:08:01 391

原创 greenplum 历史拉链表

3.1 历史拉链表数据仓库定义:是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。历史拉链表:一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的。它记录了一个事物从开始到当前状态的所有变化的信息。避免了按每一天存储所有记录造成的海量存储问题,同事也是处理缓慢变化数据的一种常见方式。3.1.1 应用场景描述企业有5000万会员信息,每天有20万会员资料变更,每天要保存一份数据快照以记录历史变化。那么一年数据条数为2x365x5000w是365亿条。如果用历史拉

2022-03-12 10:19:00 3227

原创 快学Scala 第四章 映射和元组

映射(哈希表)是键值对偶的集合。元组:n个对象的聚集(n1,n2,n3…)(m1,m2,m3)这就是元组,而对偶不过是一个n=2的元组。4.1 构造映射val scores = Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)上面的映射是不可变的。如果要可变的需要使用下面的方法:val scores = new scale.Collection.mutable.Map("Alice" -> 10, "Bob" -> 3

2021-10-23 21:51:17 416

原创 快学Scala第三章 数组相关操作

3.1 定长数组长度不变的数组,使用Scala中的Array。val nums = new Array[Int](10)//所有元素初始化为0val a = new Array[String](10)//所有元素初始化为nullval s = Array("Hello", "World")//长度为2的数组,Array[String]--类型是推断出来的s(0) = "Goodbye"在JVM中,Scala的Array以Java数组方式实现。3.2 变长数组:数组缓冲与Java中Ar

2021-10-23 18:23:44 126

原创 快学Scala第二章

2.1 条件表达式·if/else表达式有值,这个值就是跟在if或else之后的表达式的值。如:if (x > 0) 1 else -1因此可以将if/else表达式的值赋值给变量:val s = if (x > 0) 1 else -1这与以下语句的效果是一样的:if (x > 0) s = 1 else s = -1第一种写法可以用来初始化一个val,第二种写法只能初始化var。在scala中,每个表达式都有一个类型。if (x > 0) "positiv

2021-10-23 15:35:55 230

原创 第二章 spring boot核心运行原理 (2)

2.3.8 @EnableAutoConfiguration过滤自动配置组件当初步完成自动配置组件排除工作之后,AutoConfigurationImportSelector会结合在此之前获得的AutoConfigurationMetadata对象,对组件进行再次过滤.代码如下:private List<String> filter(List<String> configurations, AutoConfigurationMetadata autoConfigurationM

2021-02-05 11:32:15 68

原创 精通正则表达式第三章:正则表达式的特性和流派概览

程序设计语言处理正则表达式的方式集成式:表达式直接内建在语言之中,如Perl程序式和面向对象式:正则表达式不属于语言的低级语法。相反,普通的函数接受普通的字符串,把他们作为正则表达式进行处理。集成式处理集成式处理方法减轻了程序员的负担,因为它隐藏了一些工作,例如正则表达式的预处理,准备匹配,应用正则表达式,返回结果。但是有时这样处理反而更慢,更复杂。程序式处理和面向对象式处理正则功能不是由内建的操作符来提供,而是由普通函数(函数式)或构造函数(面向对象式)来提供的。Java中的正则处理

2021-02-02 10:46:19 438

原创 精通正则表达式学习记录 第二章

这里讲的一个例子是将Text(文本)转化文HTML的正则表达式的书写过程–书中67页Text-to-Html转换我们写一个完成上述任务的小工具(使用Perl语言)为了将正则表达式运用在整个文本上,而不是一行一行处理,可以使用Perl提供的功能进行转化:undef $/; #进入“file-slurp”(文件读取)模式$text = <>; #读入命令行中的第一个文件print $text;处理特殊字符将原始文本中的特殊的字符转换为对应的HTML编码,比如'&', '

2021-02-01 09:18:16 203

原创 精通正则表达式学习记录 第二章 入门示例扩展

用环视功能为数值添加逗号为了更好地显示大的数值,可以每三个数值加一个逗号显示如298444215显示为298,444,215。要用正则表达式来匹配这样的文本,需要使用新特性“环视”。环视结构:不匹配任何字符,只匹配文本中特定的位置,这一点与单词分界符\b锚点^和$相似。但是,环视比它们更加通用。一种类型的环视叫顺序环视,它顺序查看文本,尝试匹配子表达式,如果能够匹配,就返回匹配成功信息。肯定型环视:用特殊的序列(?=...)来表示,例如(?=\d),它表示如果当前位置右边的字符是数字则匹配成功。逆

2021-01-26 16:33:20 94

原创 精通正则表达式学习记录 第一章 正则表达式入门

基础知识扩展

2021-01-24 20:03:55 87

原创 精通正则表达式学习记录 第一章 正则表达式入门

可选项元素元字符?代表可选项,比如color和colour两个单词,只相差一个字符u,可以用colou?r来解决这个问题。把问号加在一个单词的后面,就表示此处容许出现这个字符,不过它的出现并非匹配成功的必要条件。u?这个元字符和我们之前看到的元字符都不同,它只作用于之前紧邻的元素例子:匹配7月4日:(July|Jul)。(fourth|4th|4)July?。(fourth|4th|4)两个正则表达式都是可以正确匹配的。现在我们来看第二部分,可以把4th|4简化为4(th)?。我们看到,现在?作

2021-01-24 17:29:55 102

原创 精通正则表达式学习记录 第一章 正则表达式入门

一个例子:检索某台服务器上的页面重复的单词如"The the"。可能会有很多特俗的要求比如:能检查多个文件能跨行查找能进行大小写区分查找能找出用HTML tag分割的重复单词等等正则表达式 (Regular Expression) 是强大、便捷、高效的文本处理工具。本身加上一门袖珍编程语言的通用模式表示法,赋予使用者描述和分析文本的能力。它能够添加、删除、分离、叠加、插入和修整各种类型的文本和数据。***宿主语言***提供了外围的处理支持,但是真正的能力来自于正则表达式。一个简单的例子:我

2021-01-24 15:36:20 187

原创 网道JavaScript教程 学习记录 第一章 入门篇

一 导论1.什么是JavaScript语言?script language 是“脚本语言”,它不具备开发操作系统的能力(这里可以对比c++等语言能够开发操作系统主要是因为它们可以直接和内核交流),而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。JavaScript是嵌入式的,它本身提供的核心语法较少,只能用来做一些数学和逻辑运算。没有提供与系统I/O相关的API(接口)。它要靠调用宿主的API来完成具体的功能。主要的宿主包括:(a)浏览器,浏览器可以提供以下三大类接口:1.用来操作浏

2020-12-24 10:19:26 787

原创 HTTP权威指南学习--第16章 国际化

HTTP要能够传输和处理多种语言和字母表编写的国际性文档两个主要问题:字符集编码(character set encoding)和语言标记(language tag)。HTTP应用程序使用字符集编码请求和显示不同字母表中的文本,他们使用语言标记根据用户所理解的语言来说明并限制内容。注意内容:讲解HTTP如何与多语言字母表的方案和相关标准进行交互;快速概览术语、技术和标准,以帮助HTTP编程人员正确理解。解释对各种语言的标准命名系统,以及标准化的语言标记如何描述和选择内容。概述国际性的URI要遵

2020-12-22 10:30:59 250

原创 HTTP权威指南学习--第13章 摘要认证

摘要认证和基本认证兼容,但更为安全。虽然还没有德奥广泛应用,但对实现安全事务来说,这些概念很重要。13.1 摘要认证的改进1.永远不会以明文方式在网络上发送密码。2.可以防止恶意用户捕获并重放认证的握手过程。3.可以有选择地防止对报文内容的篡改。4.防范其他几种常见的攻击方式。对然不是最安全的,也不能满足安全HTTP事务的很多需求,但还是比一些协议好。13.1.1 用摘要保护密码客户端不发送密码而是发送一个指纹或密码的摘要,这是密码的不可逆扰码。客户端和服务器都知道这个密码。因此服务器可以验

2020-12-21 09:27:37 428

原创 HTTP权威指南学习-第12章 基本认证机制

我们要保证只有特定的人能看到我们的敏感信息并且能够执行我们的特权事务。并不是所有的信息都能够公开发布的。服务器需要通过某种方式来了解用户身份。从而判定用户可以访问的资源和事务了。最常见的HTTP认证形式,基本认证(basic authentication)。12.1 认证认证就是要给出一些身份证明。12.1.1 HTTP的质询/响应认证框架HTTP提供了一个原生的质询/响应(challenge/response)框架,简化了对用户的认证过程。大概就是访问时让你输入用户名和密码。12.1.2

2020-12-20 19:35:06 148

原创 HTTP权威指南学习--第10章 HTTP-NG

本章对HTTP未来的一些发展趋势和所要面临的挑战,以及被称为HTTP-NG的下一代HTTP结构方案进行了介绍。10.1 HTTP发展中存在的问题HTTP最初被设想为一种简单的技术,用于访问分布式信息服务器上链接的多媒体内容。随着HTTP被越来越多地用作复杂远程操作的统一载体,HTTP/1.1已经开始出现一些局限性。1.复杂性:HTTP相当复杂,而且其特性之间是相互依存的。2.可扩展性:HTTP很难实现递增式扩展。很多流传下来的HTTP应用程序中都没有自主的功能性扩展技术,使协议的扩展无法兼容。3

2020-12-20 15:19:36 175

原创 HTTP权威指南学习--第9章web机器人

web机器人(web robot)被称为自活跃(self-animating)用户代理。是能够在无需人类干预的情况下自动进行一系列web事务处理的软件程序。很多机器人从一个web站点逛到另一个站点,获取内容,跟踪超链接并对它们找到的数据进行处理。如:1.股票图形机器人每隔几分钟就会向股票市场的服务器发送HTTP GET请求,用得到的数据来构建股价趋势图。2.web统计机器人会收集与万维网规模及发展有关的统计信息。统计web页面数量,记录页面大小、所用语言及媒体类型。3.搜索机器人会搜集他们所找到的所

2020-12-20 11:12:25 500 1

原创 HTTP权威指南学习--第8章 集成点:网关、隧道及中继

人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面。本章简要介绍了一些开发者用HTTP访问不同资源的方法,展示了开发者如何将HTTP作为框架启动协议和应用程序通信。主要内容:在HTTP和其他协议及应用程序之间起到接口作用的网关;允许不同类型的web应用程序互相通信的应用程序接口允许用户在HTTP连接上发送非HTTP流量的隧道作为一种简化的HTTP代理,一次将数据转发一跳的中继8.1 网关单个应用程序无法处理所有这些能想到的资源。为了解决这个问题

2020-12-19 21:52:35 241 1

原创 HTTP权威指南--第7章 缓存

Web缓存是可以自动保存常见文档副本的HTTP设备。当一个请求到达缓存时,如果本地已有“已缓存的”有效副本可用,就可以直接从缓存返回响应。缓存具有以下优点:1.减少了冗余的数据传输,节省了网络费用。2.缓解了网络瓶颈的问题。不需要更多的带宽就能更快地加载页面。3.降低了对原始服务器的要求。服务器可以更快地响应,避免过载的出现。4.降低了距离时延,因为从较远的地方加载页面会更慢一些。7.1 冗余的数据传输当很多客户端访问一个流行的服务器时,服务器会多次传输同一份文档,这会造成数据传输冗余。7.2

2020-12-19 11:10:50 254 1

原创 HTTP权威指南--第三章 HTTP报文

如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。报文是如何流动的。HTTP报文的三个组成部分。请求和响应报文之间的区别。请求报文支持的各种功能。和响应报文一起返回的各种响应码。各种各样的HTTP首部都是用来做什么的。3.1 报文流报文在客户端、服务器和代理之间流动,术语“流入”、“流出”、“上游”和“下游”都是用来描述报文方向的。3.1.1 报文流入源端服务器3.1.2 报文向下游流动不管是请求还是响应报文都会想下游流动。所有报文的发送者都在报文的接受者的上游。

2020-12-18 20:16:24 159

原创 HTTP权威指南学习--第6章 代理

对HTTP代理进行解释,将其与web网关进行对比,并说明如何部署代理;给出一些代理所能提供的帮助;说明在现实网络中是怎样的部署代理以及如何将网络流量导向代理服务器。说明如何配置浏览器来使用代理;展示HTTP的代理请求,说明他们与服务器请求的区别,以及代理是如何微妙地改变浏览器行为的。解释如何通过via首部和TRACE方法来记录报文传输路径上的代理服务器链;描述基于代理的HTTP访问控制方法;解释代理如何与客户端和服务器进行交互,每个客户端和服务器支持的特性和使用的版本都有可能有所不同。6.1

2020-12-18 20:08:25 309

原创 HTTP权威指南--第二章 URL与资源

URL就是因特网资源的标准化名称。URL指向一条电子信息片段,告诉你它们位于何处,以及如何与之交互。2.1 浏览因特网资源URL是浏览器寻找信息时所需要的资源位置。他是URI的一个子集,另一个子集是URN(通过名字来识别资源)。URL提供了一种统一的资源命名方式。大多数URL都有同样的:“方案://服务器位置/路径”结构。URL为应用程序提供了一种访问资源的手段。实际上,很多用户可能都不知道他们的浏览器在获取所请求的资源时所使用的协议和访问方法。2.2 URL的语法由于资源可以通过各种不同的方案(

2020-12-18 10:48:22 307

原创 HTTP权威指南学习--第5章 服务器

对多种使用不同软硬件的web服务器进行调查介绍如何用perl编写简单的诊断性web服务器一步一步地解释web服务器是如何处理HTTP事务的5.1 各种形状和尺寸的web服务器术语“Web服务器”可以用来表示Web服务器的软件,也可以用来表示提供web页面的特定设备或计算机。有普通的10行Perl脚本的web服务器、50MB的安全商用引擎以及极小卡上服务器。5.1.1 Web服务器的实现Web服务器实现了HTTP和相关的TCP连接处理。负责管理web服务器提供的资源,以及对web服务器的配置、控

2020-12-18 10:47:10 184

原创 HTTP权威指南学习记录--第一章HTTP概述

1.1 HTTP-因特网的多媒体信使HTTP是web的基石,应用广泛。它使用可靠的数据传输协议既方便了开发者也使用户更放心。1.2 Web客户端和服务器Web服务器也常被称为HTTP服务器。HTTP客户端和HTTP服务器共同构成了万维网的基本组件。浏览器(web客户端)发送一条请求给web服务器,web服务器会去寻找所期望的对象,如果成功,就将对象、对象类型、对象长度以及其他一些信息放在HTTP响应中发送给客户端。1.3 资源Web服务器是web资源的宿主。Web资源是web内容的源头。最简单的w

2020-12-17 10:18:48 493

原创 Gradle构建工具学习

1.创建构建扫描构建扫描是构建的一个可共享且集中的记录,它提供了对发生了什么以及为什么发生的洞察。通过将构建扫描插件应用到您的项目,您可以免费将构建扫描发布到https://scans.gradle.com。你将创造什么本指南向您展示如何在不修改任何构建脚本的情况下即时发布构建扫描。您还将学习如何修改构建脚本,以便为给定项目的所有构建启用构建扫描。您还可以选择修改一个init脚本,以启用所有项目的构建扫描。你需要什么您可以使用自己的样例项目,也可以使用Gradle提供的样例项目。接入互联网访问

2020-12-17 08:34:57 304

原创 Spring源码深度剖析第五章5.7创建bean,跟踪调试记录

5.7.1创建bean实例代码在文件\spring-beans\src\main\java\org\springframework\beans\factory\support\AbstractAutowireCapableBeanFactory.java/** * Create a new instance for the specified bean, using an appropriate instantiation strategy: * factory method, construc

2020-10-08 17:20:57 135

原创 Spring AOP官网学习

Spring AOP官网学习5.1 AOP概念让我们从定义一些核心的AOP概念和术语开始。这些术语并不是spring特有的。不幸的是,AOP术语不是特别直观。1.Aspect(方面):跨多个类的关注点的模块化。事务管理是企业级Java应用程序中横切关注点的一个很好的例子。在Spring AOP中,方面是通过使用常规类(基于模式的方法)或使用@Aspect注释的常规类(@AspectJ风格)来实现的。2.(Join point)连接点:程序执行期间的一个点,例如方法执行或异常处理期间的一个点。在Spr

2020-10-07 16:54:48 882

空空如也

空空如也

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

TA关注的人

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