当前位置: 首页 > wzjs >正文

内蒙建设工程信息网站如何建立免费公司网站

内蒙建设工程信息网站,如何建立免费公司网站,微信开发者工具安装,wordpress采集开源目录: 第一题 Spring事务传播机制第二题 Spring事务什么时候会失效?第三题 什么是bean的⾃动装配,有哪些⽅式?第四题 Spring中的Bean创建的⽣命周期有哪些步骤?第五题 Spring中Bean是线程安全的吗? 第一题 Spring事务…

在这里插入图片描述

目录:

  • 第一题 Spring事务传播机制
  • 第二题 Spring事务什么时候会失效?
  • 第三题 什么是bean的⾃动装配,有哪些⽅式?
  • 第四题 Spring中的Bean创建的⽣命周期有哪些步骤?
  • 第五题 Spring中Bean是线程安全的吗?

第一题 Spring事务传播机制

多个事务⽅法相互调⽤时,事务如何在这些⽅法间传播,⽅法A是⼀个事务的⽅法,⽅法A执⾏过程中调⽤了⽅法B,那么⽅法B有⽆事务以及⽅法B对事务的要求不同都会对⽅法A的事务具体执⾏造成影响,同时⽅法A的事务对⽅法B的事务执⾏也有影响,这种影响具体是什么就由两个⽅法所定义的事务传播类型所决定。

  1. REQUIRED(Spring默认的事务传播类型):如果当前没有事务,则⾃⼰新建⼀个事务,如果当前存在事务,则加⼊这个事务
  2. SUPPORTS:当前存在事务,则加⼊当前事务,如果当前没有事务,就以⾮事务⽅法执⾏
  3. MANDATORY:当前存在事务,则加⼊当前事务,如果当前事务不存在,则抛出异常。
  4. REQUIRES_NEW:创建⼀个新事务,如果存在当前事务,则挂起该事务。
  5. NOT_SUPPORTED:以⾮事务⽅式执⾏,如果当前存在事务,则挂起当前事务
  6. NEVER:不使⽤事务,如果当前事务存在,则抛出异常
  7. NESTED:如果当前事务存在,则在嵌套事务中执⾏,否则REQUIRED的操作⼀样(开启⼀个事务)

第二题 Spring事务什么时候会失效?

spring事务的原理是AOP,进⾏了切⾯增强,那么失效的根本原因是这个AOP不起作⽤了!常⻅情况有如下⼏种

  1. 发⽣⾃调⽤,类⾥⾯使⽤this调⽤本类的⽅法(this通常省略),此时这个this对象不是代理类,⽽是UserService对象本身!解决⽅法很简单,让那个this变成UserService的代理类即可!
  2. ⽅法不是public的:@Transactional 只能⽤于 public 的⽅法上,否则事务不会失效,如果要⽤在⾮public ⽅法上,可以开启 AspectJ 代理模式。
  3. 数据库不⽀持事务
  4. 没有被spring管理
  5. 异常被吃掉,事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)

第三题 什么是bean的⾃动装配,有哪些⽅式?

开启⾃动装配,只需要在xml配置⽂件中定义“autowire”属性

<bean id="cutomer" class="com.xxx.xxx.Customer" autowire="" />

autowire属性有五种装配的⽅式:

  • no – 缺省情况下,⾃动配置是通过“ref”属性⼿动设定 。
⼿动装配:以value或ref的⽅式明确指定属性值都是⼿动装配。
需要通过‘ref’属性来连接bean。
  • byName-根据bean的属性名称进⾏⾃动装配。
Cutomer的属性名称是person,Spring会将bean id为person的bean通过setter⽅法进⾏⾃动
装配。
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="byName"/>
<bean id="person" class="com.xxx.xxx.Person"/>
  • byType-根据bean的类型进⾏⾃动装配。
Cutomer的属性person的类型为Person,Spirng会将Person类型通过setter⽅法进⾏⾃动装
配。
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="byType"/>
<bean id="person" class="com.xxx.xxx.Person"/>
  • constructor-类似byType,不过是应⽤于构造器的参数。如果⼀个bean与构造器参数的类型形同,则进⾏⾃动装配,否则导致异常。
Cutomer构造函数的参数person的类型为Person,Spirng会将Person类型通过构造⽅法进⾏⾃动
装配。
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="construtor"/>
<bean id="person" class="com.xxx.xxx.Person"/>
  • autodetect-如果有默认的构造器,则通过constructor⽅式进⾏⾃动装配,否则使⽤byType⽅式进⾏⾃动装配。
如果有默认的构造器,则通过constructor⽅式进⾏⾃动装配,否则使⽤byType⽅式进⾏⾃动装配。

@Autowired⾃动装配bean,可以在字段、setter⽅法、构造函数上使⽤。

第四题 Spring中的Bean创建的⽣命周期有哪些步骤?

Spring中⼀个Bean的创建⼤概分为以下⼏个步骤:

  1. 推断构造⽅法
  2. 实例化
  3. 填充属性,也就是依赖注⼊
  4. 处理Aware回调
  5. 初始化前,处理@PostConstruct注解
  6. 初始化,处理InitializingBean接⼝
  7. 初始化后,进⾏AOP

第五题 Spring中Bean是线程安全的吗?

Spring本身并没有针对Bean做线程安全的处理,所以:

  1. 如果Bean是⽆状态的,那么Bean则是线程安全的
  2. 如果Bean是有状态的,那么Bean则不是线程安全的
    另外,Bean是不是线程安全,跟Bean的作⽤域没有关系,Bean的作⽤域只是表示Bean的⽣命周期范围,对于任何⽣命周期的Bean都是⼀个对象,这个对象是不是线程安全的,还是得看这个Bean对象本身。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力
在这里插入图片描述

http://www.dtcms.com/wzjs/292324.html

相关文章:

  • 手机制作小程序软件的app国外seo比较好的博客网站
  • 大学英文网站建设举措广州优化公司哪家好
  • 贵州做网站怎么推广2023适合小学生的新闻事件
  • 网站版面的图文是怎么做的英文seo外链发布工具
  • 经典网站首页设计种子搜索神器下载
  • 做网站接活全流程app注册推广平台
  • 国内wordpress教程seo优化标题
  • 传奇做网站空间seo人员培训
  • 怎么进入邯郸论坛网天津百度网站快速优化
  • 做网站上加入模块怎么加入广告关键词查询
  • 深圳网站建设设计net的网站建设
  • 酷炫个人特别网站seo推广培训资料
  • 做平台网站怎么做的qq引流推广软件哪个好
  • 做俄罗斯外贸的网站设计西安seo推广优化
  • 肇庆做网站的有培训机构最新消息
  • 网站建设公司的性质seo整站优化
  • 建设网站的费用如何账务处理百度信息流怎么投放
  • 遵义做网站建设哪家公司好百度快照客服
  • jsp简单的网站开发例子免费有效的推广网站
  • 赤峰网站建设red企业网站建设的基本流程
  • 做网站宽度和长度布局正规培训机构有哪些
  • 移动网站 拉新2023年8月新闻热点事件
  • 怎样360网站做推广seo课程多少钱
  • 电商网站开发的功能seo是指搜索引擎营销
  • 武汉交通建设网站宁德市自然资源局
  • 云南住房和建设厅网站神秘网站
  • 网站制作熊猫建站石家庄关键词优化平台
  • 网站域名服务器一年多少钱泉州seo报价
  • 广州市 网站 建设云建站模板
  • 做社区网站企业网站推广注意事项