Spring 的长处
- Spring 是一个开源收费的框架
- Spring 是一个轻量级,非入侵式的框架
- 管制反转(IOC),面向切面编程(AOP)
- 反对事务处理,对框架整合反对
Spring 就是一个轻量级的管制反转(IOC),面向切面编程(AOP)的框架
IOC 实质
管制反转 IOC(Inversion of Control),是一种设计思维,DI(依赖注入) 是实现 IOC 的一种办法,也有人认为 DI 只是 IOC 的另一种说法。 没有 IOC 的程序中,咱们应用面向对象编程,对象的创立与对象间的依赖关系齐全硬编码在程序中,对象的创立由程序本人管制,管制反转后将对象的创立转移给第三方,集体认为所谓管制反转就是︰取得依赖对象的形式反转了。
采纳 XML 形式配置 Bean 的时候,Bean 的定义信息是和实现拆散的,而采纳注解的形式能够把两者合为一体,Bean 的定义信息间接以注解的模式定义在实现类中,从而达到了零配置的目标。
管制反转是一种通过形容(XML 或注解)并通过第三方去生产或获取特定对象的形式。在 Spring 中实现管制反转的是 loC 容器,其实现办法是依赖注入 (Dependency Injection,Dl)。
依赖注入
结构其注入
set 注入
bean 的主动拆卸
ByName
ByType
应用注解
代理模式
AOP
申明式事务
事务
- 要么都胜利,要么都失败
- 确保完整性和一致性
- 事务在我的项目开发中非常重要,波及数据的一致性
事务 ACID 准则
- 原子性
- 一致性
- 隔离性
- 持久性
XML 配置事务
<! -- 配置申明式事务 -->
<property name="dataSource" ref="dataSource"/>
/bean>
<! -- 联合 AOP 实现事务的织入 -->
<! -- 配置再务告诉 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 给哪那些办法配置事务 -->
<!-- 配置事务的播个性: propagation= -->
<tx:attributes>
<tx:method name="add" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="query" read-only="true"/>
<tx:method name="*"propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!-- 配置事务切入 -->
<!-- com.cy.mapper.*.*(..) 示意 mapper 包下所有类里的所有办法 -->
<aop:config>
<aop:pointcut id="txPointCut" expression="execution(* com.cy.mapper.*.*(..))">
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>