乐趣区

关于spring:Spring框架学习

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>
退出移动版