原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9476550.html 一.提出问题 不知道你是否遇到过这样的情况,在ssm框架中开发web引用,或者使用springboot开发应用,当我们调用一个带有@Transactional注解的方法执行某项事务操作的时候,有时候会发现事务是不生效的. 你是否考虑过这是为什么,又该如何来修复事务呢? 二.分析问题 要想弄明白事务不生效的原因,我们首先要弄明白Spring中事务的实现原理,而Spr…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9560803.html 一.概述 Spring的两大特性:IOC和AOP. AOP是面向切面编程,Spring内置了自己实现的基于动态代理技术的AOP,同时还支持成熟的AspectJ框架,我们这里主要讲述的还是内置的基于动态代理的AOP实现.因为面对一些普通的需求,Spring内置的AOP已经绰绰有余. AOP一般用于增强原来的代码的功能,这种增强体现在辅助方面,比如安全.日志.事务等.…
常用的解决方法可以百度,我针对我的问题描述一下 Mysql中InnoDB引擎才支持事务, MyISAM不支持事务. 当你尝试了各种方法解决spring中注解式事务不生效时, 一定要查看一下数据库中表的驱动…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9619910.html 其实在之前的源码解读里面,关于织入的部分并没有说清楚,那些前置.后置.环绕.异常等通知是如何围绕在目标方法周围执行的呢? 这里面最重要的就是递归,Spring在实现这块逻辑的时候使用的大量的递归调用,完美的实现的织入的逻辑. 我们不凡就以Spring基础系列--AOP实践中的例子来进行一番逻辑追踪,来一探究竟. 我们就从测试类开始: 首先我们通过CglibAopP…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9996902.html SpringBoot基础系列-web开发 概述 web开发就是集成Spring MVC进行开发,非REST开发. 整合Spring MVC Spring MVC自动配置 当我们在POM中添加spring-boot-starter-web之后,SpringBoot就会自动进行SpringMVC整合配置,这些配置内容包括: 自动创建ContentNegotiating…
本文绝大部分内容为转载,原文地址:https://blog.csdn.net/trigl/article/details/50968079 除此之外,后面还有延伸内容 事务在企业日常开发中几乎是一定会遇到的,一般就是开启事务支持,然后@Transactional,但是事务不仅仅是这些,可以了解一下细节 事务: 说白了就是一系列操作要么成功,要么失败,最典型的场景就是转账 一.事务四大特性:ACID 1.原子性(Atomicity): 事务是一个原子操作,由一系列动作组成.事务的原子性确保动作要么…
一.spring声明式事务 1.1 spring的事务管理器 spring没有直接管理事务,而是将管理事务的责任委托给JTA或相应的持久性机制所提供的某个特定平台的事务实现.spring容器负责事物的操作,spring容器充当切面,事务的方法称为增强处理,生成的代理对象的方法就是目标方法+增强也就是crud+事务程序员只用做crud的操作,也就是目标方法和声明哪些方法应该在事务中运行. Spring提供了许多内置事务管理器实现: DataSourceTransactionManager:位于or…
Spring Boot启动过程 ​上篇<Spring Boot系列--5分钟构建一个应用>介绍了如何快速创建一个Spring Boot项目并运行.虽然步骤少流程简单,为开发者省去了很多重复性的配置工作,但是其底层实现并没有这么简单. 这篇,我们就通过入口类TutorialApplication看看Spring Boot是如何启动的. 注解 写过Spring Boot都知道需要有一个入口类,就是本例子中的TutorialApplication,而这个类上面必不可上的需要有一个@SpringBoo…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9953744.html Spring中使用参数校验 概述 ​ JSR 303中提出了Bean Validation,表示JavaBean的校验,Hibernate Validation是其具体实现,并对其进行了一些扩展,添加了一些实用的自定义校验注解. ​ Spring中集成了这些内容,你可以在Spring中以原生的手段来使用校验功能,当然Spring也对其进行了一点简单的扩展,以便其更…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9870339.html 概述 ​ 我说的容器启动流程涉及两种情况,SSM开发模式和Springboot开发模式. SSM开发模式中,需要配置web.xml文件用作启动配置文件,而Springboot开发模式中由main方法直接启动. 下面是web项目中容器启动的流程,起点是web.xml中配置的ContextLoaderListener监听器. 调用流程图(右键可查看大图) 流程解析 T…