Spring学习-第一节-概述及IOC

一、Spring概述

  1. Spring是开源的对bean的生命周期进行管理的轻量级容器。
  2. Spring有两个核心部分:IOC和AOP
    IOC:控制反转,把对象的创建交给Spring进行管理
    AOP:面向切面,不改变源代码进行功能增强
  3. Spring特点
    (1)方便解耦,简化开发
    (2)AOP编程支持
    (3)方便程序测试
    (4)方便和其它框架的整合
    (5)方便进行事务的操作
  4. Spring组成模块
    在这里插入图片描述

二、IOC底层原理

  1. 主要用到xml解析、工厂设计模式、反射
  2. 在这里插入图片描述
  3. IOC容器底层就是对象工厂
  4. Spring提供IOC容器的两种实现方式:
    BeanFactory:IOC容器最基本的实现,是Spring内置的使用接口,不提供给开发人员使用
    *加载配置文件时不会去创建对象,在获取对象(使用)时才会去创建对象
    ApplicationContext:是BeanFactory的子接口,提供了更多更强大的功能,提供给开发人员使用
    *加载配置文件时就会将配置文件中配置的对象进行创建
  5. ApplicationContext两个实现类
    在这里插入图片描述
    FileSystemXmlApplicationContext:对应的xml文件路径为盘符路径
    ClassPathXmlApplicationContext:对应的xml文件路径为类文件路径

三、bean管理

bean管理指:Spring创建对象、Spring注入属性
bean管理的两种实现方式:基于xml配置文件、基于注解

四、bean管理-基于xml配置文件

  1. 基于xml创建对象
    在这里插入图片描述
    (1)在Spring配置文件中,使用bean标签,配置相应的属性,就可以实现对象的创建
    id属性:对象唯一标识
    class属性:对象所属类的全路径
    (2)创建对象时,默认调用的是无参构造来创建对象

    1. 基于xml方式注入属性
      (1)DI:依赖注入,就是注入属性
      set方法注入:
      在这里插入图片描述
      有参构造注入:
      在这里插入图片描述
      (2)字面量
      在这里插入图片描述
      (3)注入属性-外部bean
      在这里插入图片描述

    (4)注入属性-内部bean
    在这里插入图片描述
    (5)注入属性-集合
    在这里插入图片描述
    在这里插入图片描述

  2. bean的作用域:
    (1)在Spring中可以设置创建bean实例时单实例还是多实例
    (2)在Spring中默认是单实例
    (3)在Spring配置文件的bean标签中,属性scope用于设置单实例还是多实例
    (4)scope属性值
    singleton:默认值,单实例
    prototype:多实例
    (5)singleton和prototype区别
    singleton表示单实例,prototype表示多实例;
    singleton会在加载配置文件的时候就去创建对象,prototype不会在加载配置文件的时候创建对象,会在调用get’Bean方法的时候创建对象

  3. bean的生命周期
    (1)通过构造器创建bean实例(无参构造)
    (2)为bean属性设置值(调用set方法)
    (3)调用bean的初始化方法(需要进行配置)
    (4)获取bean实例getBean
    (5)当容器关闭时,调用销毁实例的方法销毁bean实例(需要进行配置)

  4. 添加bean的后置处理器
    (1)创建类,实现BeanPostProcesser接口,创建后置处理器
    在这里插入图片描述
    (2)xml配置文件配置后置处理器
    在这里插入图片描述

  5. 添加bean的后置处理器后,bean的生命周期
    (1)通过构造器创建bean实例(无参构造)
    (2)为bean属性设置值(调用set方法)
    (3)将bean实例传递给bean的后置处理器的postProcessBeforeInitialization方法
    (4)调用bean的初始化方法(需要进行配置)
    (5)将bean实例传递给bean的后置处理器的postProcessAfterInitialization方法
    (6)获取bean实例getBean
    (7)当容器关闭时,调用销毁实例的方法销毁bean实例(需要进行配置)

  6. bean管理-自动装配
    (1)什么是自动装配:根据指定自动装配规则(属性名称或者属性类型),Spring自动匹配属性进行注入
    (2)通过配置xml配置文件中bean标签中的autowire属性实现自动注入:
    byName:通过名称注入,注意类属性名称,要与xml文件中的bean的id一致
    byType:通过类型注入,注意相同类型的bean不能存在多个

  7. 外部属性文件
    (1)创建数据库连接池(直接配置)
    在这里插入图片描述
    (2)创建数据库连接池(外部properties配置文件)
    在这里插入图片描述
    引入context名称空间
    在这里插入图片描述
    引入外部properties配置文件:
    在这里插入图片描述

五、bean管理-基于注解

  1. 什么是注解:
    (1)注解是代码特殊标记,格式:@注解名称(属性名=属性值)
    (2)注解可以作用在类、方法、属性上
    (3)使用目的:简化xml配置
  2. Spring针对bean管理中创建对象的注解
    (1)@Component
    (2)@Service
    (3)@Controller
    (4)@Repository
  3. 基于注解方式创建对象
    (1)引入aop依赖包
    (2)开启组件扫描
    在这里插入图片描述
    在这里插入图片描述
  4. 基于注解方式属性注入
    (1)@AutoWired:根据属性类型自动注入
    (2)@Qualifier:根据属性名称自动注入,需要与@AutoWired一起使用,为了解决一个接口存在多个实现类的情况
    (3)@Resource(本身不属于Spring,属于javax):可以根据属性类型或者属性名称自动注入,添加name属性时使用名称注入,否则适用类型注入
    (4)@Value:注入普通类型属性
    5.完全注解开发
    (1)创建配置类代替xml配置文件
    在这里插入图片描述
    (2)加载配置类
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值