Spring

基于 XML 的配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
BeanFactory 和 ApplicationContext 的区别
在这里插入图片描述
ApplicationContext 接口的实现类
在这里插入图片描述

bean 标签

在这里插入图片描述

bean 的作用范围和生命周期

在这里插入图片描述

实例化 Bean 的三种方式

第一种方式:使用默认无参构造函数
   <!--在默认情况下:
它会根据默认无参构造函数来创建类对象。如果 bean 中没有默认无参构造函数,将会创建失败。
    -->
 <bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"/>

在这里插入图片描述
在这里插入图片描述

spring 的依赖注入

  • 构造函数注入
    顾名思义,就是使用类中的构造函数,给成员变量赋值。注意,赋值的操作不是我们自己做的,而是通过配置的方式,让 spring 框架来为我们注入。
    在这里插入图片描述
    在这里插入图片描述
  • set 方法注入
    顾名思义,就是在类中提供需要注入成员的 set 方法。
    在这里插入图片描述
    在这里插入图片描述
  • 使用 p 名称空间注入数据(本质还是调用 set 方法)
    此种方式是通过在 xml 中导入 p 名称空间,使用 p:propertyName 来注入数据,它的本质仍然是调用类中的set 方法实现注入功能
    在这里插入图片描述
    在这里插入图片描述
  • 注入集合属性
    顾名思义,就是给类中的集合成员传值,它用的也是set方法注入的方式,只不过变量的数据类型都是集合。我们这里介绍注入数组,List,Set,Map,Properties。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基于注解的 IOC 配置

基于注解整合时,导入约束时需要多导入一个 context 名称空间下的约束。
< !-- 告知 spring 创建容器时要扫描的包 -->
<context:component-scan base-package=“com.ou”></context:component-scan>

常用注解

用于创建对象的
相当于:< bean id="" class="">
@Component
在这里插入图片描述

@Controller @Service @Repository
在这里插入图片描述

用于注入数据的
相当于:< property name="" ref=""> < property name="" value="">
@Autowired
在这里插入图片描述
@Qualifier
在这里插入图片描述
@Resource
在这里插入图片描述
@Value
在这里插入图片描述
用于改变作用范围的:
相当于:< bean id="" class="" scope="">
@Scope
在这里插入图片描述
和生命周期相关的:(了解)
相当于:< bean id="" class="" init-method="" destroy-method="" />
@PostConstruct
在这里插入图片描述
@PreDestroy
在这里插入图片描述
关于 Spring 注解和 XML 的选择问题
在这里插入图片描述
@Configuration
在这里插入图片描述
@ComponentScan
在这里插入图片描述
@Bean
在这里插入图片描述
@PropertySource
在这里插入图片描述
@Import
在这里插入图片描述


使用@RunWith 注解替换原有运行器
在这里插入图片描述
使用@ContextConfiguration 指定 spring 配置文件的位置
在这里插入图片描述
在这里插入图片描述

AOP 的相关概念

动态代理常用的有两种方式

基于接口的动态代理
提供者:JDK 官方的 Proxy 类。
要求:被代理类最少实现一个接口。
基于子类的动态代理
提供者:第三方的 CGLib,如果报 asmxxxx 异常,需要导入 asm.jar。
要求:被代理类不能用 final 修饰的类(最终类)。

使用 JDK 官方的 Proxy 类创建代理对象
在这里插入图片描述

使用 CGLib 的 Enhancer 类创建代理对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在 spring 中,框架会根据目标类是否实现了接口来决定采用哪种动态代理的方式。

第一步:把通知类用 bean 标签配置起来
在这里插入图片描述

第二步:使用 aop:config 声明 aop 配置
在这里插入图片描述
在这里插入图片描述

第三步:使用 aop:aspect 配置切面
在这里插入图片描述

第四步:使用 aop:pointcut 配置切入点表达式

在这里插入图片描述
第五步:使用 aop:xxx 配置对应的通知类型
在这里插入图片描述
在这里插入图片描述
切入点表达式说明
在这里插入图片描述
在这里插入图片描述
环绕通知
在这里插入图片描述
在这里插入图片描述

基于注解的 AOP 配置

在通知类上使用@Aspect 注解声明为切面
在这里插入图片描述

在增强的方法上使用注解配置通知
在这里插入图片描述
在这里插入图片描述
在 spring 配置文件中开启 spring 对注解 AOP 的支持
在这里插入图片描述

环绕通知注解配置
在这里插入图片描述
切入点表达式注解
在这里插入图片描述
在这里插入图片描述
不使用 XML 的配置方式
在这里插入图片描述


Spring 中的事务控制

spring 的事务控制都是基于 AOP 的,它既可以使用编程的方式实现,也可以使用配置的方式实现。

PlatformTransactionManager
在这里插入图片描述
在这里插入图片描述
TransactionDefinition
在这里插入图片描述
事务的隔离级别
在这里插入图片描述
事务的传播行为
在这里插入图片描述
超时时间
在这里插入图片描述
是否是只读事务
在这里插入图片描述
TransactionStatus
在这里插入图片描述


第一步:配置事务管理器
在这里插入图片描述
在这里插入图片描述
第二步:配置事务的通知引用事务管理器
在这里插入图片描述
第三步:配置事务的属性
在这里插入图片描述
第四步:配置 AOP 切入点表达式
在这里插入图片描述
第五步:配置切入点表达式和事务通知的对应关系
在这里插入图片描述

基于注解的配置方式

在这里插入图片描述

第一步:配置事务管理器并注入数据源
在这里插入图片描述
第二步:在业务层使用@Transactional 注解
在这里插入图片描述
该注解的属性和 xml 中的属性含义一致。该注解可以出现在接口上,类上和方法上。
出现接口上,表示该接口的所有实现类都有事务支持。
出现在类上,表示类中所有方法有事务支持
出现在方法上,表示方法有事务支持。
以上三个位置的优先级:方法>类>接口

3 第三步:在配置文件中开启 spring 对注解事务的支持
在这里插入图片描述
不使用 xml 的配置方式
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值