文章目录SpringMVC简介开发步骤SpringMVC执行流程图(粗略)SpringMVC 组件解析代码实现SpringMVC执行流程(代码层面)SpringMVC执行流程(底层部件)注解解析XML配置解析SpringMVC数据响应页面跳转回写数据SpringMVC获得请求参数获得基本类型参数使用@PathVariable在url中传递参数获得POJO类型参数获得集合类型参数参数绑定@Requ
Java Java作为一门广泛应用的编程语言,被广泛应用于各种领域,包括后端开发、移动应用开发等。但是,对于一些初学者来说,Java可能不是那么容易掌握。本文将通过介绍Java的基本概念和示例代码,帮助读者更好地理解和掌握这门语言。 ### Java的基本概念 #### 类和对象 在Java中,一切皆为对象。一个类是对象的模板,包含了对象的属性和方法。对象是类的实例化,通过关键字`ne
原创 2024-05-09 04:26:04
46阅读
SpringSession () 场景和问题当Zuul网关接收到http请求后,当请求进入对应的Filter进行过滤,通过 SpringSecurity 认证后,提取 SessionID,转发给各个微服务,通过Spring-Session创建的分布式微服务,实现Session共享!特点:(1)浏览器和移动端,和Nginx代理,对token可见。(2)各个微服务,用到共享Session。 并且,
原创 7月前
37阅读
前序前面我的一系列文章对 Spring AOP 进行了比较详细的讲述,相信对于 Spring AOP 你有一个比较深入的理解,如果你不是很了解,建议先查看我前面的这一系列文章,因为 Spring 事务是借助于 Spring AOP 实现的。由于这段时间有点忙(太懒了~),没能及时更新 Spring AOP 在 Spring 内部的应用相关内容,趁着对它还有一点印象,我们一起来看看 Spring
转载 2021-05-12 13:37:00
472阅读
2评论
通过上一篇 《初识 JDK、CGLIB 两种动态代理》 文章我们对 Spring AOP 底层的 JDK 动态代理和 CGLIB 动态代理有了一定的了解,也知道如何简单地使用两种动态代理创建代理对象。相信上篇文章可以让你对 Spring AOP 有了一个初步的认识,那么接下来我们准备进入 Spring AOP 源码学习阶段。在开始 Spring AOP 源码学习前,本文会对 Spring AOP
转载 2021-05-06 21:11:26
357阅读
2评论
通过上一篇 《初识 JDK、CGLIB 两种动态代理》 文章我们对 Spring AOP 底层的 JDK 动态代理和 CGLIB 动态代理有了一定的了解,也知道如何简单地使用两种动态代理创建代理对象。相信上篇文章可以让你对 Spring AOP 有了一个初步的认识,那么接下来我们准备进入 Spring AOP 源码学习阶段。在开始 Spring AOP 源码学习前,本文会对 Spring AOP
转载 2021-04-22 11:46:44
825阅读
2评论
通过上一篇 《初识 JDK、CGLIB 两种动态代理》 文章我们对 Spring AOP 底层的 JDK 动态代理和 CGLIB 动态代理有了一定的了解,也知道如何简单地使用两种动态代理创建代理对象。相信上篇文章可以让你对 Spring AOP 有了一个初步的认识,那么接下来我们准备进入 Spring AOP 源码学习阶段。在开始 Spring AOP 源码学习前,本文会对 S
原创 精选 2024-03-25 10:00:33
397阅读
前序前面我的一系列文章对 Spring AOP 进行了比较详细的讲述,相信对于 Spring AOP 你有一个比较深入的理解,如果你不是很了解,建议先查看我前面的这一系列文章,因为 Spring 事务是借助于 Spring AOP 实现的。由于这段时间有点忙(太懒了~),没能及时更新 Spring AOP 在 Spring 内部的应用相关内容,趁着对它还有一点印象,我们一起来看看 Spring
原创 2024-05-16 09:44:42
58阅读
【正文】JAVA NIO 4:  NIO Selector 1.1. Selector入门1.1.1. Selector的和Channel的关系Java NIO的核心组件包括:(1)Channel(通道)(2)Buffer(缓冲区)(3)Selector(选择器)其中Channel和Buffer比较好理解 ,联系也比较密切,他们的关系简单来说就是:数据总是从通道中读到buffer缓冲区内
原创 2018-10-21 21:25:35
2117阅读
【正文】netty源码  2:  传说中神一样的Reactor反应器模式1. 为什么是Reactor模式写多了代码的兄弟们都知道,JAVA代码由于到处面向接口及高度抽象,用到继承多态和设计模式,程序的组织不是按照正常的理解顺序来的,对代码跟踪很是个问题。所以,在阅读别人的源码时,如果不了解代码的组织方式,往往是晕头转向,不知在何处。尤其是阅读经典代码的时候,更是如此。反过来,如果先了解代码的设
原创 2018-10-22 23:22:41
576阅读
别问为什么,到底就完事了!
原创 2022-03-11 13:47:17
41阅读
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读Spring 版本:5.1.14.RELEASE《 Spring 之 IoC 篇 - 深入了解 Spring IoC(面试题)》《 Spring 之 IoC 篇 - 调试环境的搭建》《 Spring 之 IoC 篇 -
转载 2021-02-24 13:28:35
137阅读
3评论
Bean 的“前身”我们在 Spring 中通常以这两种方式定义一个 Bean:面向资源(XML、Properties)、面向注解。如今 Spring Boot 被广泛应用,通过注解定义一个 Bean 的方式变得更为普遍,因为在实际的开发过程中注解的方式相比于 XML 文件更加轻便,可以有效地提高工作效率。你是否这了解这两种方式在 Spring 内是如何进行处理的,将我们的配置信息转换成 Spri
原创 2024-01-17 14:45:03
105阅读
通过第2章的介绍,应该知道Spring如何从XML一步步解析成BD对象并注册到容器中,这一过程有个概要认识了。接下来开始详细分析与XML相关的那些事。首先看一下使用的XML文档。<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"  &
原创 精选 2015-12-24 21:17:04
10000+阅读
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读Spring 版本:5.1.14.RELEASE开始阅读这一系列文章之前,建议先查看《深入了解 Spring IoC(面试题)》这一篇文章Bean 的“前身”我们在 Spring 中通常以这两种方式定义一个 Bean:面向资源(X
转载 2021-02-23 10:55:58
180阅读
2评论
精进篇:netty源码5  - 揭开 ChannelHandler 的神秘面纱目录1. 前言 2. Handler在经典Reactor中的角色 3. Handler在Netty中的坐标位置 4. Netty中Handler的类型 1.1. ChannelInboundHandler入站处理器 1.2. ChannelOutboundHandler出站处理器 5. 揭开Pipeline的神秘面纱
翻译 2018-10-25 23:19:01
863阅读
多线程的东西很多,也很有意思,所以我最近的重心可能都是多线程的方向去靠了,不知道大家喜欢否?阅读本文之前阅读以下两篇文章会帮助你更好的理解:Volatile乐观锁&悲观锁正文场景我们正常去使用Synchronized一般都是用在下面这几种场景:修饰实例方法,对当前实例对象this加锁public class Synchronized {    public synchronized voi
原创 2021-03-31 13:48:32
186阅读
点击上方 "程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Smile can be given to anyone. Bu...
转载 2021-06-17 11:06:37
130阅读
关于synchronized的底层实现,网上有很多文章了。但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结、照搬而成,难免有些错误;要么很多点都是一笔带过,对于为什么这样实现没有一个说法,让像我这样的读者意犹未尽。 本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁、轻量级锁、重量级锁的加锁、解锁、锁升级流程的原理及源码分析,希望给在研究synch
转载 2021-06-20 15:22:55
96阅读
一、synchronized简介 二、锁的几种形式 1.对象头 2.重量级锁 3.轻量级锁 4.偏向锁 对象创建 加锁过程 解锁过程 批量重偏向与撤销 三、总结
转载 2021-07-27 17:17:22
124阅读
  • 1
  • 2
  • 3
  • 4
  • 5