Spring

1.什么是Spring

在这里插入图片描述

2.Spring的优缺点是什么

优点:
1、集中管理对象,对象和对象之间的耦合度减低,简化开发,便于维护。

2、支持AOP编程,在不修改代码的情况下可以对业务代码进行增强,减少重复代码,提高开发效率,维护方便。

3、声明事物的支持,提高开发效率,只需要一个简单注解@Transactional。

4、方便程序的测试,Spring实现测试,使我们可以结合junit非常方便测试Spring Bean、SpringMVC。

5、方便集成各种优秀框架,拥有非常强大粘合度、集成能力非常,只需要简单配置就可以集成第三方框架。

6、降低Java EE API的使用难度,简化开发, 帮我封装很多功能性代码,比如啥啥template。

7、Java 源码是经典学习范例,学习到了Spring底层的实现、反射…设计模式 都是我们值得学习,提供非常多的扩展接口供外部进行扩展。

缺点:
从应用层面说没有缺点,用起来很容易,但是深入理解就非常困难,代码量过于庞大。

3.什么是Spring IOC容器?有什么作用?优点是什么?

IOC是控制反转,就是对对象组件的控制权(装配、管理)由程序代码反转给外部容器,所以IOC容器负责创建(通过DI,装配对象,配置对象)、管理对象(整个生命周期)。

作用:
1、管理着对象创建和依赖关系的维护。托管了类的产生过程,代理都不用应用程序去关心了,省事方便。
2、解耦,由容器去维护管理。

优点:
最小的代价和最小的侵入性使松散耦合得以实现。
IOC容器支持加载服务时的饿汉式初始化和懒加载。

4.Spring IoC的实现机制是什么

简单工厂+反射(BeanFactory、创建对象)
在这里插入图片描述
在这里插入图片描述

5.什么是Spring的依赖注入(DI)?IOC和DI的区别是什么

DI是IOC的具体实现方式,将对象组件从IOC容器中取出注入给调用者。

IOC是依赖倒置原则的设计思想,而DI是具体的实现方式

6.紧耦合和松耦合有什么区别?

紧耦合:
紧密耦合是指类之间高度依赖。

松耦合:
松耦合是通过促进单一职责和关注点分离、依赖倒置的设计原则来实现的。

7.BeanFactory的作用

  • BeanFactory是Spring中非常核心的一个顶层接口;

  • 它是Bean的“工厂”、它的主要职责就是生产Bean;

  • 它实现了简单工厂的设计模式,通过调用getBean传入标识生产一个Bean;

  • 它有非常多的实现类、每个工厂都有不同的职责(单一职责)功能,最强大的工厂是:DefaultListableBeanFactory Spring底层就是使用的该实现工厂进行生产Bean的

  • BeanFactory它也是容器 Spring容器(管理着Bean的生命周期)
    在这里插入图片描述

8. BeanDefinition的作用

它主要负责存储Bean的定义信息:决定Bean的生产方式。
在这里插入图片描述
后续BeanFactory根据这些信息就行生产Bean: 比如实例化 可以通过class进行反射进而得到实例对象 , 比如lazy 则不会在ioc加载时创建Bean

9. BeanFactory 和 ApplicationContext有什么区别?

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

10.BeanFactory和FactoryBean有什么区别?

BeanFactory是一个工厂,也就是一个容器,是来管理和生产bean的;

FactoryBean是一个bean,但是它是一个特殊的bean,所以也是由BeanFactory来管理的,它是一个接口,他必须被一个bean去实现。不过FactoryBean不是一个普通的Bean,它会表现出工厂模式的样子,是一个能产生或者修饰对象生成的工厂Bean,里面的getObject()就是用来获取FactoryBean产生的对象。所以在BeanFactory中使用“&”来得到FactoryBean本身,用来区分通过容器获取FactoryBean产生的对象还是获取FactoryBean本身。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值