spring事物

Spring事务的原理

spring事务的本质是数据库对事物的支持,使用spring事务管理后,在执行增删改查操作之前之后,可自动开启事务关闭事务操作。
在配置文件中开启注解驱动,在类或方法上加上@Transactional注解,spring在启动的时候会解析相关bean,查看bean拥有@Transactional注解的类或方法并为其生成代理,并且根据@Transactional参数进行配置注入,这样在代理中完成事务处理。

spring事务什么时候会失效

1、发生自调用,类里面使用this调用本类的方法,此时这个对象不是代理类。
2、@Transactional只能用于public的方法上。
3、数据库本身不支持。
4、没有被spring管理的类
5、异常被try,catch事务不会回滚。

BeanFactory和ApplicationContext有什么区别?

**关系:**ApplicationContext是 BeanFactory的子接口,ApplicationContext提供了更加完整的功能

  1. 支持国际化文本消息
  2. 统一的资源文件访问方式
  3. 提供在监听器中注册bean的事件
  4. 同时加载多个配置文件
    区别:
    BeanFactory通过延迟加载的方式创建对象,当我们使用某个bean再去加载实例对象
    ApplicationContext在启动时创建所有bean对象,如果存在错误配置,可以及时发现,并且如果需要使用到某个bean时可以不用等待,直接注入
    相对于BeanFactory,ApplicationContext的不足是占用内存空间,当应用程序配置Bean较多时,程序启动较慢。

Spring框架中的单例Bean线程安全吗?

不安全,不要在bean中声明任何有状态的实例变量或类变量
如果一定要定义变量,就需要使用ThreadLocal把变量变为线程私有的;
如果bean的实例变量或类变量需要在多个线程之间共享,那么就只能使用synchronized、lock、CAS等这些实现线程同步的方法。

Spring框架中用到了哪些设计模式?

工厂模式:Spring中的BeanFactory创建对象的实例就是工厂模式的体现,根据传入一个唯一的标识来获得Bean对象。
单例模式:spring创建对象的时候默认采用的都是单例模式。
动态代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;
观察者模式、适配器模式、策略模式

spring和springboot的关系是什么?

1、springboot是为了大家更方便使用,更容易集成各种中间件、开源软件等
2、springboot本身并不提供spring框架的核心特性以及扩展功能,只是用于快速,敏捷开发基于spring框架应用程序。
3、SpringBoot不是用来替代spring的解决方案,而是和spring紧密联合提高spring开发者的体验工具。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值