SpringMVC源码分析4:DispatcherServlet如何找到正确的Controller
SpringMVC是目前主流的Web MVC框架之一。我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。本文实际上是在上文基
SpringMVC源码分析3:DispatcherServlet的初始化与请求转发
在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为
SpringMVC源码分析2:SpringMVC设计理念与DispatcherServlet
转自:https://my.oschina.net/lichhao/blogSpringMVC简介SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的
SpringMVC源码分析1:SpringMVC概述
转自:跟开涛学SpringMVCWeb MVC简介Web开发中的请求-响应模型:在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完成后,返回内容给web客户端(一般就是我
Spring源码剖析9:Spring事务源码剖析
转自:http://www.linkedkeeper.com/detail/blog.action?bid=1045声明式事务使用Spring事务是我们日常工作中经常使用的一项技术,Spring提供了编程、注解、aop切面三种方式供我们使用Spring事务,其中编程式事务因为对代码入侵较大所以不被推荐使用,注解和aop切面的方式可以基于需求自行选择,我们以注解的方式为例来分析Spring事务的原理
Spring源码剖析8:Spring事务概述
原文出处: 张开涛数据库事务概述事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency):在事务执行前数据库的数据处于正确的状态
Spring源码剖析7:AOP实现原理详解
前言前面写了六篇文章详细地分析了Spring Bean加载流程,这部分完了之后就要进入一个比较困难的部分了,就是AOP的实现原理分析。为了探究AOP实现原理,首先定义几个类,一个Dao接口:public interface Dao {public void select();public void insert();}Dao接口的实现类DaoImpl:pub
Spring源码剖析6:Spring AOP概述
原文出处: 五月的仓颉我们为什么要使用 AOP前言一年半前写了一篇文章Spring3:AOP,是当时学习如何使用Spring AOP的时候写的,比较基础。这篇文章最后的推荐以及回复认为我写的对大家有帮助的评论有很多,但是现在从我个人的角度来看,这篇文章写得并不好,甚至可以说是没有太多实质性的内容,因此这些推荐和评论让我觉得受之有愧。基于以上原因,更新一篇文章,从最基础的原始代码–>使用设计模
Spring源码剖析5:JDK和cglib动态代理原理详解
AOP的基础是Java动态代理,了解和使用两种动态代理能让我们更好地理解 AOP,在讲解AOP之前,让我们先来看看Java动态代理的使用方式以及底层实现原理。 转自https://www.jianshu.com/u/668d0795a95b本文是基于jdk1.8来对动态代理的底层机制进行探究的## Java代理介绍Java中代理的实现一般分为三种:JDK静态代理、
Spring源码剖析4:其余方式获取Bean的过程分析
原型Bean加载过程之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式:1 <?xml version="1.0" encoding="UTF-8"?> 2 6 7&
Spring源码剖析3:懒加载的单例Bean获取过程分析
spring ioc 容器的加载流程**1.目标:**熟练使用spring,并分析其源码,了解其中的思想。这篇主要介绍spring ioc 容器的加载**2.前提条件:**会使用debug**3.源码分析方法:**Intellj idea debug 模式下源码追溯 通过ClassPathXmlApplicationContext 进行xml 件的读取,从每个堆栈中读取程序的运行信息**
Spring源码剖析2:Spring IOC容器的加载过程
spring ioc 容器的加载流程**1.目标:**熟练使用spring,并分析其源码,了解其中的思想。这篇主要介绍spring ioc 容器的加载**2.前提条件:**会使用debug**3.源码分析方法:**Intellj idea debug 模式下源码追溯通过ClassPathXmlApplicationContext 进行xml 件的读取,从每个堆栈中读取程序的运行信息**4.注意:*
Spring源码剖析1:初探Spring IOC核心流程
本文大致地介绍了IOC容器的初始化过程,只列出了比较重要的过程和代码,可以从中看出IOC容器执行的大致流程。接下来的文章会更加深入剖析Bean容器如何解析xml,注册和初始化bean,以及如何获取bean实例等详细的过程。转自:http://www.importnew.com/19243.html1\. 初始化大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取
Spring源码剖析开篇:什么是Spring?
<!-- more -->在讲源码之前,先让我们回顾一下一下Spring的基本概念,当然,在看源码之前你需要使用过spring或者spirngmvc。Spring是什么Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完
重新学习Mysql数据13:Mysql主从复制,读写分离,分表分库策略与实践
一、MySQL扩展具体的实现方式随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。关于数据库的扩展主要包括:业务拆分、主从复制、读写分离、数据库分库与分表等。这篇文章主要讲述数据库分库与分表(1)业务拆分在 大型网站应用之海量数据和高并发解决方案总结一二 一篇文章中也具体讲述了为什么要对业务进行拆分。业务起步初始,为了加快应用上线
重新学习MySQL数据库12:从实践sql语句优化开始
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/79394168本文不堆叠网上海量的sql优化技巧或是诀窍。只通过两个浅显易懂又实用的例子介绍mysql的sql语句优化。首先介绍一下一般的大表优化方案。当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化微信公众号【
重新学习MySQL数据库10:MySQL里的那些日志们
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/79160674同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据
重新学习MySQL数据库9:Innodb中的事务隔离级别和锁的关系
微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 &n
重新学习Mysql数据库8:MySQL的事务隔离级别实战
在Mysql中,事务主要有四种隔离级别,今天我们主要是通过示例来比较下,四种隔离级别实际在应用中,会出现什么样的对应现象。Read uncommitted (未提交读)Read committed (已提交读)Repeatable read (可重复读)Serializable (可串行化)在理解四种隔离级别之前,我们需要先了解另外三个名词:脏读不可重复读幻读脏读A事务,会读取到B事务还未提交的数
重新学习Mysql数据库7:详解MyIsam与InnoDB引擎的锁实现
说到锁机制之前,先来看看Mysql的存储引擎,毕竟不同的引擎的锁机制也随着不同。三类常见引擎:MyIsam :不支持事务,不支持外键,所以访问速度快。锁机制是表锁,支持全文索引InnoDB :支持事务、支持外键,所以对比MyISAM,InnoDB的处理效率差一些,并要占更多的磁盘空间保留数据和索引。锁机制是行锁,不支持全文索引Memory:数据是存放在内存中的,默认哈希索引,非