事务控制分类 编程式事务控制          自己手动控制事务,就叫做编程式事务控制. Jdbc代码: Conn.setAutoCommite(false);  // 设置手动控制事务 Hibernate代码: Session.beginTransaction();    // 开启一个事务 [细粒度的事务控制: 可以对指定的方法.指定的方法的某几行添加事务控制] (比较灵活,但开发起来比较繁琐: 每次都要开启.提交.回滚.) 声明式事务控制 Spring提供了对事务的管理, 这个就叫声明式事…
距离上一次写Spring源码解析,已经过去了快要好几个月了,主要原因还是Spring的源码解析类文章太难写了,不像我先前写的什么CAS源码,AQS源码,LinkedBlockingQueue等等,这些无非就是分析几个核心方法,代码也不算太长,就像比较复杂的AQS源码也是两篇搞定的,虽然AQS源码也很多东西也不能算是百分百的理解,但是核心思想应该是还算理解的.解析完毕成就感也满满的,写完博客,看着大段大段的文字,心里也很开心:哈哈哈,原来JDK源码也是可以读懂的,而且还能写出来.但是Spring源…
一. 前言 Spring容器主要分为两类BeanFactory和ApplicationContext,后者是基于前者的功能扩展,也就是一个基础容器和一个高级容器的区别.本篇就以BeanFactory基础容器接口的默认实现类XmlBeanFactory启动流程分析来入门Spring源码的学习. 二. 概念要点 1. 概念定义 BeanDefinition:Bean元数据描述,Bean在Spring IOC容器中的抽象,是Spring的一个核心概念 DefaultListableBeanFactor…
Spring 配置文件自定义标签的前置条件 在上一篇文章https://www.cnblogs.com/redwinter/p/16165274.html Spring BeanFactory的创建过程中了解了BeanDefinition的加载和BeanFactory的创建,并且提到了Spring留了一个扩展点就是用户可以自定义标签进行解析BeanDefinition. 基于Spring源码在处理定制的标签时是通过定制的命名空间处理器和xsd文件进行解析的,在spring的classpath下的…
二.参考资料 1.Intellij Idea如何导入spring源码…
前言 最近在项目中做了一项优化,对业务代码进行解耦.我们部门做的是警用系统,通俗的说,可理解为110报警.一条警情,会先后经过接警员.处警调度员.一线警员,警情是需要记录每一步的日志,是要可追溯的,比如报警人张小三在2019-12-02 00:02:01时间报警,接警员A在1分钟后,将该警情记录完成,并分派给处警调度员B,调度员B在5分钟后,分派给一线警员C,C赶到现场后,花了1个小时处理完成. 这中间,每一个接口,需要做的事情,可能就包括了:警情日志记录:警员当前任务数统计,包括待处置的任务和…
本文转载自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章将同步到我的个人博客: www.how2playlife.com 本文是微信公众号[Java技术江湖]的<Spring和SpringMVC源码分析>其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了…
1.spring官方指定了三种初始化回调方法 1.1.@PostConstruct.@PreDestory 1.2.实现 InitializingBean DisposableBean 接口 1.3.设置init-method和destory-method   三种方式的优先级从高到低 在spring官方文档里面有明确指出 Multiple lifecycle mechanisms configured for the same bean, with different initializati…
一.Spring的整体架构和模块 二.模块分类: 1.Core Container Core Container包含有Core .Beans.Context.和Expression  Language模块 2.Data Access/Integration Data Access/Integration包含有JDBC.ORM.OXM.JMS和Transaction模块 3.Web Web层包含了Web.Web-Servlet.Web-Struts.Web-Porlet模块. 4.AOP 5.Te…
springboot的最强大的就是那些xxxAutoconfiguration,但是这些xxxAutoConfiguration又依赖那些starter,只有导入了这些场景启动器(starter),我们很多自动配置类才能有用,并且还会新增一些功能, 这次就来一起写个简单的starter,来看看内部到底是什么原理! 脑中大概有个印象:我们要用一个场景(比如web),直接导入下图所示的依赖,但是在jar包里面去看这个,你会发现里面只有一些基本的配置文件,什么类都没有,就能够想到这个一类就类似一个公司…