Spring 相关IOC 两个Map

SPRING 架构分析

spring官网:spring.io/projects

  1. spring是一个资源整合框架 ,通过spring可以将很多资源整合在一起,例如:连接池、MyBatid等。
  2. 对外提供相关服务,比如:秒杀、支付等;
    在这里插入图片描述
    spirng中的IOC负责实现生命周期的管理和对象依赖关系的管理;

spring框架架构:

在这里插入图片描述

1.下图为容器初始化步骤图:

个人分析为:一个被@Component组件修饰的类,就会被交给spring进行管理,这也就是bean对象的创建;bean对象都会放在IOC容器里进行配置和存放bean,因为IOC里面有两个Map, 上面的Map意思为存放bean的配置信息(工厂原材料),下面的Map存放的为bean 的实例信息,(工厂中的成品对象),下面的实例对象创建之后会被放到BeanFactory里面,当外界调用时,就会在BeanFactory里面拿,如果没有,beanFactory就会在上图的map里面拿配置信息,配置的实例就又会存放到下图的map中,然后在传给BeanFactory;
在这里插入图片描述

2. springbean对象的命名

交给spring管理的对象,都会默认有一个别名,例如:DefaultCache,别名就是defaultCache,当然也可以自定义,例如@service(“ser”);

3. @Scope(作用域):

@Scope(“singleton”):默认的作用域,可以保证每次获取同一个对象地址时,只有一个对象;
@Scope(“prototype”):每次获取都产生新的对象,也因此现象,配置map就不会将实例放到实例bean pool中;

4. 通过@Autowired按属性类型从bean池中查找对象为其赋值时,如果有多个属性类型该如何处理(多个@Component修饰交给spring处理的实现类)?

如果有多个bean会报以下异常:

expected single matching bean but found 2:预期是一个bean,但是现在有两个
处理办法:在@Autowired下加上@Qualifier(“defaultCache”),表示指定bean的实现类;

5. 低、弱耦合与高耦合:

日常的项目开发中,类与类的调用,在spring中,一般是采用接口调用,接口下会有具体的实现类,外部调用时,直接调用接口(@Autowired:自动装配,DI注入);达到弱耦合;

下图为DI注入图和完整DI流程图:

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

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员西柚柚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值