Spring官网文档系列之IOC学习

官网地址

The IoC Container.

1.1ApplicationContext与BeanFactory区别

  • Easier integration with Spring’s AOP features(支持AOP集成)
  • Message resource handling (for use in internationalization)(i18n,国际化)
  • Event publication(事件监听)
  • Application-layer specific contexts such as the WebApplicationContext for use in web applications. (应用层特定上下层,这个我也不知道是神马)

后面会详细说下

下文ACApplicationContext简写

1.2容器概述

在这里插入图片描述
AC(缩写)有我们常见的ClassPathAC,获取xml内容

配置元数据

so many 注解~

@Configuration

  1. @Import引入某个类
  2. @Bean DI描述类创建过程
  3. @Value 获取配置的值

@CompontScan

在这里插入图片描述

	注解需要被Spring所发现,所以需要加上扫描类,早期的Spring项目经常看到这个注解,
后来使用SpringBoot的时候被@SpringBootApplication代替

在这里插入图片描述

特色注解

@Enable XXX注解
在这里插入图片描述
我们在项目里面经常看到,这里就不介绍了

@Bean
在这里插入图片描述

	在Spring中我们把Bean创建交给了容器,这个过程@Bean就是告诉容器我们这个类是
如何创建的,其中包括依赖注入。
	从上面图片中可以看到,如果没有写明类的id,默认以开头小写驼峰命名的方法来
表示这个类,而这个类id会指向到相应的实例。

为啥有所谓的类命名?

等下看下1.3.1节类命名:容器将为该bean生成一个唯一的名称,从而创建出唯一的类,
不然相当混乱的不是吗?

@Autowired,@Resource

@Auto+@Qualifier=@Resource

区别:
@Auto:按照类型去注入,默认是require=true;出现多个实现类,则会启动失败
@Resource:按照名称去注入,如果失败会降级为按照类型去注入

@Qualifier:约束注入的名称

1.3.1类命名

类请求初始化之后的第一步,给个名~
在Spring bean生命周期里面这是第一步!

Spring bean生命周期.
在这里插入图片描述

1.3.2实例化

编程实例化

  1. 构造方法
  2. 静态工厂
  3. 实例方法工厂

1.4.1 依赖关系

在这里插入图片描述
DI:是一个过程,告诉容器创建bean步骤,解耦通过new 构造方法创建bean的步骤。

出现的问题:循环依赖,鸡&蛋的关系

1.6.1初始化回调

在这里插入图片描述
这个在bean复制属性之后,初始化进行相关回调。

Spring bean生命周期.

1.6.2获取上下文

通过实现ApplicationContextAware来setAC,获取上下文的相关配置等等

1.10节

@Component

在这里插入图片描述
丢出来给Spring容器发现,其中持久层是需要@Repository注解的,像我们项目一些mapper没有添加,使用@Auto注入会报警告(正常可以运行的),是由于这个类还是需要扔出来给spring去发现的。

@Service

这个跟@Controller都是@Component的细分

在这里插入图片描述

1.10.2 国际化

MessageSource,多语言就是靠这个去实现,感兴趣自己去看看。

1.11 节

JSR330标准以及@Inject,它的效果跟@Auto的一样

1.15节

1.15.1 MessageSource i18n国际化支持,也是AC特有
1.15.2监听器 @EvenListen监听类创建执行相关逻辑,也是AC特有

1.16.1对比

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值