spring基本介绍

一、spring框架的优点:

1、轻量:基础版本只有2MB

2、控制反转:通过控制反转,实现松散耦合,对象们给出他们的依赖,而不是通过创建或查找对象的依赖

3、面向切面编程:通过面向切面编程,实现业务逻辑和系统服务分开,支持面向切面编程

4、AOP事务管理:spring提供事务管理接口,实现本地事务和全局事务的管理

5、exception异常处理:提供异常处理接口,把hibernate或者jdbc的异常转为一致的unchecked异常

6、IOC容器:spring包含并管理应用中对象的生命周期和配置,实现java bean的低耦合,便于java code(对象)的重复使用

7、MVC框架:spring的web框架是一个优秀的框架,是web框架的替代品

8、大量的注解pojo,简化了xml配置,简化开发难度

小结:spring很好的实现了系统的低耦合、高聚合,便于代码的重用,而且面向接口的编程可以让api的访问不用知道底层的实现(如jdbctemplate,它并不知道是访问什么类型的数据库,只是配置上的差异,这样以后想从mysql换到oracle只需要换下驱动就好了,dao代码都不用改)

spring事务管理AOP:

AOP,即Aspect-Oriented Program面向切面编程,基于动态代理,AOP是横向的、无入侵性的、可插拔的、高复用的,因此广泛应用于日志记录、事务管理、权限控制、异常处理等场景。
在这里插入图片描述

切面类:execution表达式

1、前置通知:@Before

2、后置通知:@After

3、环绕通知: @Around

4、正常结束通知:@AfterReturning

5、异常终止通知:@AfterThrowing

编程式事务:业务方法中手动编码开启事务会话、提交事务、回滚。(不提倡使用)

声明式事务:通过@Transactional注解来实现(推荐使用)

只需在方法和类上添加@Transactional注解即可添加事务控制(若在类上添加则相当于在每个方法上都加了@Transactional)

实现原理:

Spring通过扫包发现被注解为@Transactional的方法,再通过AOP的方法进行编程式事务控制。

事务的隔离级别
在这里插入图片描述
在这里插入图片描述
小常识
1.事务级别从低到高:脏读->不可重复读->可重复读->解决幻读
2.事务级别越高,数据越安全,消耗的资源越多,数据库操作性能越低
3.在企业项目中,使用哪一种级别的事务,需要根据业务需求来确定

事务的传播行为
在这里插入图片描述
事务超时时间:

以秒为单位进行设置。如果设置为-1(默认值),表示没有超时限制。项目中使用默认值即可

是否只读事务

只读事务比读写事务性能要高,实际项目中,查询一般建议设置为只读

二、spring中的5中自动装配方式:

1、**no:**这是Spring框架的默认设置,在该设置下自动装配是关闭的,开发者需要自行在bean定义中用标签明确的设置依赖关系。

2、**byName:**该选项可以根据bean名称设置依赖关系。当向一个bean中自动装配一个属性时,容器将根据bean的名称自动在在配置文件中查询一个匹配的bean。如果找到的话,就装配这个属性,如果没找到的话就报错。

3.、byType:该选项可以根据bean类型设置依赖关系。当向一个bean中自动装配一个属性时,容器将根据bean的类型自动在在配置文件中查询一个匹配的bean。如果找到的话,就装配这个属性,如果没找到的话就报错。

4、 constructor:构造器的自动装配和byType模式类似,但是仅仅适用于与有构造器相同参数的bean,如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。

5、 autodetect:该模式自动探测使用构造器自动装配或者byType自动装配。首先,首先会尝试找合适的带参数的构造器,如果找到的话就是用构造器自动装配,如果在bean内部没有找到相应的构造器或者是无参构造器,容器就会自动选择byTpe的自动装配方式。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值