系列前言 关于本系列 本系列章节目录 Spring Framework核心篇 重新来认识你的老朋友Spring框架 Spring容器装配Bean的三种方式 Spring Framework核心概念之Bean生命周期管理 Spring Framework框架容器核心源码逐步剖析 Spring Framework WEB篇 Spring WEB配置文件上传的两种方式 Spring Framework 数据篇 Spring项目对JDBC的支持和基本使用 从底层源码浅析Mybatis的SqlSessio…
总之,Srping Framework 很好很强大. 1 Spring Framework 介绍 省下你和transcation APIs, JMX APIs, JMS APIs 交流的功夫. 1.1 DI 和 IOC 总之,Spring Framework 帮你做好了DI 这回事. 1.2 Modules Spring Framework 大概有20多个模块. 2 其余全略过,直接看例子 https://anonsvn.springframework.org/svn/spring-sample…
转载自https://blog.csdn.net/WinWill2012/article/details/71626044 还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到: HashMap是非线程安全的,HashTable是线程安全的. 那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解. 今天我们将深入剖析一个比HashTable…
上一章节估计被官方的说明文档扯晕了,其实说白了不就是个IOC 注入的容器么,用过了微软Enterprise Library 的Unity 的我还会怕这个.自己随便写个demo, 将知识的主题框架先构建起来就不会那么无力感了. 最简单的实现 这里我们抛弃掉一切干扰因素,随手自己实现个Spring 的应用,其中有很多不科学和不合理之处,但不妨碍我们先让代码run 起来. xml 配置文件 刚开始还担心配置文件的名称啊,位置啊是否有什么约定,这些确实有,但是不妨碍我们初学者不求甚解. <?xml ve…
目录 构建Spring环境 Spring 版本 5.1.3.RELEASE 测试类 Spring 配置文件 测试方法Main 快速进入Debug查看IOC容器构建源码 Spring IOC源码步骤分析 第一步: 检查并设置Spring XML配置文件 第二步:执行创建Bean容器之前的准备工作 第三步:创建 Bean 容器,加载并注册 Bean 第四步:配置 Bean容器: prepareBeanFactory 第五步: 处理自定义Bean的后置处理器 第六步: 初始化Spring容器的消息源…
目录 Spring Bean的生命周期 相关接口的分类 测试SpringBean生命周期的Demo程序 小结 Spring Bean的生命周期 Spring容器既Application或者WebApplication会在管理Bean的时候:为了尽可能的把自己内部的东西机制暴露出来给用户使用,所以在Bean创建的过程中加了很多机制,通过所谓的"处理器"Processor暴露出来,然后处理器都有自己的顺序,我们需要做的就是定义好处理器的逻辑,然后注册到Sprinhg容器中,Spring就会…
事务控制 事务是什么?事务控制? 事务这个词最早是在数据库中进行应用,讲的用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位. 事务的管理是指一个事务的开启,内容添加,提交和回滚. 代码层次的事务控制 事务控制原本是在数据库进行的,但由于ORM映射后,操作数据库的语句未必是SQL语句,事务控制也被迁移到了工程语言上(Java/C++/Python).Spring framework支持了事务管理的机制,通过ORM映射后可以在业务代码中实现事务控制. 事务控制形式…
Spring Framework 5.0是在Spring Framework 4.0之后将近四年内一次重大的升级. 在这个时间框架内,主要的发展之一就是Spring Boot项目的演变. Spring Framework 5.0的最大特点之一是响应式编程(Reactive Programming). 响应式编程核心功能和对响应式endpoints的支持可通过Spring Framework 5.0中获得. 重要变动如下列表所示: 常规升级 对JDK 9运行时兼容性 在Spring Framewo…
本文基于Java 7的源码做剖析. ConcurrentHashMap的目的 多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.虽然已经有一个线程安全的HashTable,但是HashTable容器使用synchronized(他的get和put方法的实现代码如下)来保证线程安全,在线程竞争激烈的情况下HashTable的效率非常低下.因为当一个线程访问HashTable的同步方法时,访问其他同步方法的线程就可能会进…
小结: 1. Dependency Injection is merely one concrete example of Inversion of Control. 依赖注入是仅仅是控制反转的一个具体例子. 2. Dependency Injection helps in gluing these classes together and at the same time keeping them independent. 依赖注入既使类粘合又使类分离. 3. For example, cla…