Spring 的总结

1.什么是Spring

首先, spring 是一个开源框架, Spring 为简化企业级应用开发而生, 使用 Spring 可以使简单的 JavaBean 实
现以前只有 EJB 才能实现的功能。 Spring 是一个 IOC 和 AOP 容器框架

 

2.Spring主要有哪些功能

 

控制反转(IOC):

传统的 java 开发模式中, 当需要一个对象时, 我们会自己使用 new 或者 getInstance 等
直接或者间接调用构造方法创建一个对象, 而在 Spring 开发模式中, Spring 容器使用了工厂模式为我们创建
了所需要的对象, 我们使用时不需要自己去创建, 直接调用 Spring 为我们提供的对象即可, 这就是控制反转
的思想。 实例化一个 java 对象有三种方式: 使用类构造器, 使用静态工厂方法, 使用实例工厂方法, 当使用
spring 时我们就不需要关心通过何种方式实例化一个对象, spring 通过控制反转机制自动为我们实例化一个
对象。

依赖注入(DI):

Spring 使用 Java Bean 对象的 Set 方法或者带参数的构造方法为我们在创建所需对象时将
其属性自动设置所需要的值的过程就是依赖注入的基本思想。

面向切面编程(AOP):

在面向对象编程(OOP)思想中, 我们将事物纵向抽象成一个个的对象。 而在面向切面
编程中, 我们将一个个对象某些类似的方面横向抽象成一个切面, 对这个切面进行一些如权限验证, 事物管理,
记录日志等公用操作处理的过程就是面向切面编程的思想。
 

 

3.几种比较重要的注解类型:

@Component :标识了一个受 Spring 管理的组件, 泛指组件, 当组件不好归类的时候, 我们可以使用这个注解进行标注

@Respository: 标识持久层, 数据访问组件, 即 DAO 组件

@Service: 标识业务层组件

@Controller : 标识表现层,控制层组件

@RequestMapping 是用来处理请求地址映射的注解, 可用于类或方法上。 用在类上, 表示类中所有的响应的
方法都是以该地址作为父路径来访问, 用在方法上表示该方法的访问的路径; 两者结合起来的访问的路径为完
整的访问某个方法的路径。

@RequestMapping 注解的属性:
value: 指定请求的实际的地址, 指定的地址可以是 URI Template 模式;
method: 指定访问的方法
consumes: 指定处理请求的内容类型, 比如 aplication/json;text/html
produces: 指定返回的内容的类型
params: 指定 request 中必须包含某些参数值时, 才让该方法处理请求
headers: 指定 request 中必须包含指定的 header 值, 才能让该方法处理请求

@Resource 和@Autowired
@Resource 和@Autowired 都是做 bean 的注入时使用,都可以写在字段上, 或者是 setter 方法上
@Autowired 注解是按照类型( byType) 装配依赖对象( 由 Spring 提供)
如果在此基础上想通过 byName 来装配, 可以结合@Qualifier 注解来一起使用。
@Resource 默认按照 byName 自动注入
@Resource 有两个重要的属性, name 和 type
@Resource 如果写属性 name, 则按照 byName 来装配, 如果属性为 type, 则按照 byType 来装配, 不写按照默
认的方式来装配( byName)
 

 

4.Spring 事务
 

Spring 支持两种类型的事务管理:

1.编程式事务管理: 这意味你通过编程的方式管理事务, 给你带来极大的灵活性, 但是难维护。

2.声明式事务管理: 这意味着你可以将业务代码和事务管理分离, 你只需用注解和 XML 配置来管理事务。

 

什么是事务?

所谓事务, 它是一个操作序列, 这些操作要么都执行, 要么都不执行, 它是一个不可分割的工作单位。

 

事务 ACID 特性

ACID 是 Atomic( 原子性) 、 Consistency( 一致性) 、 Isolation( 隔离性) 和 Durability( 持久性) 的英文缩写

原子性: 指整个数据库事务是不可分割的工作单位。 只有使据库中所有的操作执行成功, 才算整个事务成
功; 事务中任何一个 SQL 语句执行失败, 那么已经执行成功的 SQL 语句也必须撤销, 数据库状态应该退回到执
行事务前的状态。

一致性: 指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 例如对银行转帐事务, 不管
事务成功还是失败, 应该保证事务结束后 ACCOUNTS 表中 Tom 和 Jack 的存款总额为 2000 元。

隔离性: 指的是在并发环境中, 当不同的事务同时操纵相同的数据时, 每个事务都有各自的完整数据空间。
由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。 事务查看数据更新时, 数据所处的状态要么
是另一事务修改它之前的状态, 要么是另一事务修改它之后的状态, 事务不会查看到中间状态的数据。

持久性: 指的是只要事务成功结束, 它对数据库所做的更新就必须永久保存下来。 即使发生系统崩溃, 重
新启动数据库系统后, 数据库还能恢复到事务成功结束时的状态。
 

 


 

 


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值