spring总结

Spring

1 Spring简介

1.1 优点

(1)方便解耦,简化开发
(2)Aop 编程支持
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低 API 开发难度

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。

1.2 Spring有两个核心部分

(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
(2)Aop:面向切面,不修改源代码进行功能增强

2 IOC

2.1 概念和原理

2.2.1、什么是 IOC

(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
(2)使用 IOC 目的:为了耦合度降低

2.1.2、IOC 底层原理

(1)xml 解析、工厂模式、反射: 可以把IoC模式看作工厂模式的升华,把IoC容器看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的。利用Java 的“反射”编程,根据XML中给出的类定义生成相应的对象。从实现来看,以前在工厂模式里写死了的对象,IoC模式改为配置XML文件,这就把工厂和要生成的对象两者隔离,极大提高了灵活性和可维护性。

2.1.3、画图讲解 IOC 底层原理

在这里插入图片描述

2.1.4、IOC容器

IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂

  • BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。(延迟加载)
    加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象

  • ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预载入所有的单实例Bean,通过预载入单实例bean ,确保当你需要的时候,你就不用等待,因为它们已经创建好了。
    加载配置文件时候就会把在配置文件对象进行创建
    形象的说
    如果说BeanFactory是Spring的心脏,那么ApplicationContext就是完整的身躯了。

ApplicationContext 接口有实现类:
在这里插入图片描述

2.2 自动注解

@Resource和@Autowired注解都是用来实现依赖注入的。
只是@AutoWried按by type自动注入,和@qualifier搭配使用,如果controller有俩个实现service,用qualifier指定,默认按类名注入
而@Resource默认按byName自动注入,如果没有匹配则通过byType注入。

3.AOP

AOP的底层机制就是动态代理,不改变原来的代码的情况下,实现了对原有功能的增强
动态代理的代理类是动态生成的 . 静态代理的代理类是我们提前写好的

动态代理分为两类 : 一类是基于接口动态代理 , 一类是基于类的动态代理

基于接口的动态代理----JDK动态代理
基于类的动态代理–cglib

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值