NingShanFeng_2019面试之springIOC 容器创建对象

创建对象, 有几种方式

      1) 调用无参数构造器

      2) 带参数构造器

      3) 工厂创建对象

               工厂类静态方法创建对象

               工厂类非静态方法创建对象

 

Spring 事物控制 编程式事务控制

自己手动控制事务,就叫做编程式事务控制。

Jdbc 代码:

            Conn.setAutoCommite(false); // 设置手动控制事务

 

Hibernate 代码:

                 Session.beginTransaction(); // 开启一个事务

【细粒度的事务控制: 可以对指定的方法、指定的方法的某几行添加事务控制】 (比较灵活,但开发起来比较繁琐: 每次都要开启、提交、回滚.)

 

声明式事务控制

Spring 提供了对事务的管理, 这个就叫声明式事务管理。

Spring 声明事物有 xml 方式和注解方式

Spring 提供了对事务控制的实现。用户如果想用 Spring 的声明式事务管理,只需要在配 置文件中配置即可; 不想使用时直接移除配置。这个实现了对事务控制的最大程度的解耦。

 

Spring 声明式事务管理,核心实现就是基于 Aop

【粗粒度的事务控制: 只能给整个方法应用事务,不可以对方法的某几行应用事务。】 (因为 aop 拦截的是方法。)

Spring 声明式事务管理器类:

             Jdbc 技术:DataSourceTransactionManager

             Hibernate 技术:HibernateTransactionManager

 

Spring 事物传播行为

Spring 中事务的定义:

          Propagationkey 属性确定代理应该给哪个方法增加事务行为。这样的属性最重 要的部份是传播行为。)有以下选项可供使用:

          PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建 一个事务。这是最常见的选择。

          PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

          PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

          PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。

          PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

          PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值