底层实现原理图: 观看底层代码: 1):打开 web.xml 文件  2):按住 Ctrl + 鼠标左键 进入底层查看源码   3):按住 Ctrl+o 找到对应的方法doDispatch   5):找到下面的代码: 根据我们的请求找到需要执行的Handler(Controller)ctrl+鼠标左键 点进getHandler()  发现这个方法的返回值就是一个处理器执行链!  6):进入getHandler之后找到下面的代码:继续进入这里的hm.getHandler(request) -- 进…
一个简单的HelloSpringMVC程序 先在web,xml中注册一个前端控制器(DispatcherServlet) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"…
本文转载自Java volatile 关键字底层实现原理解析 导语 在Java多线程并发编程中,volatile关键词扮演着重要角色,它是轻量级的synchronized,在多处理器开发中保证了共享变量的"可见性"."可见性"的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值.如果一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的.与synchronized不同,volatile变量不会引起线程上下文的切换和…
前言 文章首发于微信公众号[码猿技术专栏]. 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗? 假设你要查询城市是苏州的所有人名字,并且按照姓名进行排序返回前 1000 个人的姓名.年龄,这条 sql 语句应该如何写? 首先创建一张用户表,sql 语句如下: CREATE TABLE user ( id ) NOT NULL, city ) NOT NULL, name ) NOT NULL, age ) NOT…
Java-Reflect专题 基本反射简介: 1):JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 2):JAVA反射(放射)机制:"程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观看,Perl,PythonRuby是动态语言,C++,Java,C#不是动态语言. 3):但是JAVA有着一个非常突出的动态相关机制:…
依赖原则:解决模块工程之间的Jar冲突问题 1):情定设定:验证路径最短者优先原则 创建三个工程如下: Hello:并且以来 log4j.1.2.17.jar HelloFriend:依赖了工程 Hello,按理说HelloFriend也会间接的依赖了 log4j.1.2.17.jar  但是由于一些特殊原因 明确声明了 为  .14 的jar MakeFriends:依赖了 HelloFriend ,大家一开始以为会间接的会依赖两个 jar.实际MakeFriends 只能依赖一个.(寻址一个…
项目使用很多@Scheduled(cron=**) 注解来实现定时任务,既然要用就必须弄清楚的它的实现原理,于是乎翻了一下相关的源码. Spring 3.0之后增加了调度器功能,提供的@Scheduled 注解, 那么它内部是如何实现的呢? 本文以Spring 4.3.10.RELEASE 源码进行分析,相关源码在 org.springframework.scheduling 包下(spring-context). 核心类摘要: ScheduledAnnotationBeanPostProces…
Mybatis-持久层的框架,功能是非常强大的,对于移动互联网的高并发 和 高性能是非常有利的,相对于Hibernate全自动的ORM框架,Mybatis简单,易于学习,sql编写在xml文件中,和代码分离,易于维护,属于半ORM框架,对于面向用户层面的互联网业务性能和并发,可以通过sql优化解决一些问题. 现如今大部分公司都在使用Mybatis,所以我们要理解框架底层的原理.闲话不多说. Mybatis框架的核心入口 是SqlSessionFactory接口,我们先看一下它的代码 public…
本文目录 一.Apache Spark 二.Spark SQL发展历程 三.Spark SQL底层执行原理 四.Catalyst 的两大优化 一.Apache Spark Apache Spark是用于大规模数据处理的统一分析引擎,基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量硬件之上,形成集群. Spark源码从1.x的40w行发展到现在的超过100w行,有1400多位大牛贡献了代码.整个Spark框架源码是一个巨大的工程.…
http://www.cnblogs.com/artech/archive/2012/06/20/async-action-in-mvc.html Visual Studio提供的Controller创建向导默认为我们创建一个继承自抽象类Controller的Controller类型,这样的Controller只能定义同步Action方法.如果我们需要定义异步Action方法,必须继承抽象类AsyncController.这篇问你讲述两种不同的异步Action的定义方法和底层执行原理.[本文已经…