同步、异步、阻塞和非阻塞 发表于 2017-02-25 | 分类于 IO IO操作其实可以分成两个步骤,请求IO操作和执行IO操作。一般的IO调用过程是这样的:发起IO操作的请求,执行IO操作,得到IO操作的结果,将结果返回给IO操作请求。 场景:我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了。 ... 阅读全文 »
Linux网络I/O模型 发表于 2017-02-25 | 分类于 Linux 参考:同步、异步、阻塞和非阻塞 在Linux(Unix)中,可用的网络 I/O 模型有五种:阻塞I/O,非阻塞I/O,I/O多路复用(select/poll),信号驱动I/O,异步I/O。 前4种都是同步的,最后一种才是异步的。 数据操作通常分为输入和输出,在操作系统中,数据的输入可以分为两个过 ... 阅读全文 »
SpringMVC: 原理 发表于 2017-02-22 | 分类于 SpringMVC ApplicationContext在Web容器中的启动 应用程序级别的上下文(根上下文):applicationContext.xml,一般加载非web的配置(Service、DataSource、DAO等)。 web级别的上下文(子上下文):dispatcher-servlet.xml,专注于m ... 阅读全文 »
Spring: AOP实现 发表于 2017-02-22 | 分类于 Spring Spring AOPSpring AOP实现中,使用的核心技术是动态代理,代理的方式分为:JDK代理和CGLib代理。 Spring AOP的实现大体上和之前的博客类似 动手写web框架(8): AOP实现,都是将拦截器链配置到动态代理生成的对象中,然后拦截器在代理对象中起作用是通过对拦截器方法的回 ... 阅读全文 »
Spring: Bean对IoC容器的感知 发表于 2017-02-20 | 分类于 Spring 如果Bean需要直接对IoC容器进行操作,就需要在Bean中设定对容器的感知。Spring IoC容器是通过特定的 aware 接口来完成的。 BeanNameAware: 可以在 Bean 中得到它在IoC容器中的Bean 实例名称。 BeanFactoryAware: 可以在 Bean 中得到 ... 阅读全文 »
Spring: BeanFactory和FactoryBean 发表于 2017-02-20 | 分类于 Spring BeanFactoryBeanFactory 定义了IoC容器应该遵守的最底层和最基本的编程规范。所有的Bean都是由BeanFactory来进行管理的。 FactoryBeanFactoryBean 就是一个Bean,只不过这是一个能产生或修饰对象生成的工厂Bean。是为了方便Factory实例在 ... 阅读全文 »
Spring: IoC实现 发表于 2017-02-20 | 分类于 Spring IoC容器Spring中有两个主要的容器系列:BeanFactory和ApplicationContext。 BeanFactory: 定义了IoC容器的基本功能。 ApplicationContext: 在简单容器的基础上,通过继承MessageSource、ResourceLoader、Ap ... 阅读全文 »
Mybatis: 插件及分页 发表于 2017-02-19 | 分类于 Mybatis 插件Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的)。 Mybatis支持对Executor、StatementHandler、ParameterHandler和ResultSetHandler进行拦截。 插件的 ... 阅读全文 »
Mybatis: Mapper映射文件解析 发表于 2017-02-19 | 分类于 Mybatis 解析Mybatis的配置文件最后一步是解析mapper元素,也就是解析其对应的Mapper.xml文件。 Mapper元素只有一个属性namespace,它有两个作用: 一是用于区分不同的mapper(在不同的mapper文件里,子元素的id可以相同,mybatis通过namespace和子元素的 ... 阅读全文 »
Mybatis: 入门 发表于 2017-02-19 | 分类于 Mybatis 简介Mybatis框架的核心组成部分:mybatis-config.xml、SqlSession、Executor、StatementHandler、ResultSetHandler。 原理JDBC数据库操作1234567891011Class.forName("com.mysql.jdbc.Dri ... 阅读全文 »