美文网首页spring boot
spring  boot+spring 事务(2018-04-0

spring  boot+spring 事务(2018-04-0

作者: 夜阑人儿未静 | 来源:发表于2018-05-21 00:10 被阅读85次

spring boot 原理

1.@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解

A.@SpringBootConfiguration中的@Configuration:IoC容器的配置类

@Configuration可理解为用spring的时候xml里面的标签@Bean可理解为用spring的时候xml里面的标签

保证Spring Boot main入口在要扫描的类的上层包可以。

B.@EnableAutoConfiguration :spring boot的核心功能是由这个注解提供的

@Import(EnableAutoConfigurationImportSelector.class)

@Import注解导入的配置功能,将所有符合自动配置条件的bean定义加载到IoC容器

C.@ComponentScan:功能其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。

spring 事物

spring支持编程式事务管理和声明式事务管理两种方式。

编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。

声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。

声明式事务管理也有两种常用的方式:

虽然 @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。

基于tx和aop名字空间的xml配置文件 基于@Transactional注解 事物的传播性 事物的隔离级别

mybatis与hibernate的区别

JVM内存模型

Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。

并发编程的三大概念:原子性,有序性,可见性。

附:@RestController=@ResponseBody + @Controller

相关文章

网友评论

本文标题:spring  boot+spring 事务(2018-04-0

本文链接:https://www.haomeiwen.com/subject/axzchftx.html