摘要:
概述 template包实现了用于生成文本输出的数据驱动(data driven)模板。 要生成HTML输出,请参阅html / template 包,它与此包具有相同的接口,但会自动保护HTML输出免受某些攻击。 通过将模板应用于一个数据结构来执行模板。模板中的标记引用该数据结构的元素(通常是st 阅读全文
摘要:
前言 本文将分析spring boot应用在启动时的几个关键时间点,学习Spring Boot的运行原理。 版本:Spring Boot 1.5.x Applcation.main() 当我们执行 方法时,它会创建一个SpringApplication实例,并将该类作为参数传递。 springApp 阅读全文
摘要:
前言 在Spring MVC中实现文件上传功能并不复杂,前端使用HTML语法,后端使用特定抽象,参考Spring Boot相关文档即可。本文主要讲解常见资料忽略的两个问题: 文件上传错误 链接重置问题 版本:Spring Boot 1.5.x 文件上传错误 如何处理文件上传期间发生的错误是一个重要的 阅读全文
摘要:
前言 我们知道了Spring MVC的请求处理流程,但一个实际的项目是如何启动起来的呢? 下面将对Spring MVC的搭建原理进行分析。 一个基于Java代码驱动的Spring MVC包括: 一个配置DispatcherServlet的类 一个RootConfig类 一个WebConfig类 版本 阅读全文
摘要:
前言 Spring MVC是工作在Java Servlet之上的一套MVC框架,本文将通过分析Spring MVC的请求处理流程来学习Spring MVC的工作原理。 主要将分析: DispatcherServlet 控制请求处理全局流程 HandlerMapping 控制请求到处理器的路由 Han 阅读全文
摘要:
在Web领域,我们常见三个专业词汇URI,URL,URN,在这里我将对这3个概念进行分析,理清其内在逻辑。 URL URL是统一资源定位符的缩写,它对网络中的资源的定位提供了一种统一方案。它的语法格式: URN URN是统一资源名称的缩写,它对网络中的资源的名称提供了一种统一方案。它要求全球唯一,并 阅读全文
摘要:
Striped64类 Striped64是java1.8 juca中新增的多个累加器类的基础类。它的基本思想其实与并发数据结构的发展息息相关: 最原始的并发数据结构使用粗粒度的阻塞锁。如HashTable,直接将并行转换为串行,性能很差(在那个时代,它并没有错,“需要优化时才进行优化”)。 然后的想 阅读全文
摘要:
LongAdder是什么? 很多人根本连API文档都没有好好读,就喜欢吵着“JUC大法好,底层实现妙妙妙”,然后就钻入低层实现的分析了,浮躁是搞技术的大忌。 LongAdder的类文档说明如下: 从它的接口 API来看,就是一个累加器。 (接口API 略) 因此,我们来回答heading中的问题:什 阅读全文
摘要:
为什么并发集合类不支持null 按照设计者 "Doug Lea" 自己的说法是: The main reason that nulls aren't allowed in ConcurrentMaps (ConcurrentHashMaps, ConcurrentSkipListMaps) is t 阅读全文
摘要:
Annotation(注解)是Java 1.5中添加的特性,很多java框架都依赖注解来实现代码级配置,相比XML配置更简洁。要理解框架的运行原理,注解是一个基础的概念。 注解的基本概念 网上、书本对注解的基本概念已经进行了很详细的讲解,这里不再重述,例如: 从高层次来讲,注解是与代码紧耦合的元数据 阅读全文