目录
1. 什么是Spring框架?
2. Spring,Spring MVC,Spring Boot之间的关系?
3. 使用Spring框架的好处是什么?
4. 核心容器(Application Context)应用上下文模块
5. BeanFactory-BeanFactory实现举例
6. IOC是什么?
7. IOC有什么用?优点是什么?
8. 什么是AOP?
9. 为什么叫面向切面编程?
10. 什么是SpringBeans?
11. 什么是依赖注入?有什么好处?
12. 有哪些不同类型的依赖注入实现方式?
13. Spring基于XML注入bean的几种方式
14. 怎么定义类的作用域
15. Spring支持哪几种bean的作用域?
16. Spring框架中的单例bean是线程安全的吗?
17. Spring中bean的生命周期
18. 什么是bean的自动装配?
19. SpringMVC的工作流程
20. 说出Spring或SpringMVC常用的注解,并解释。
21. 简述SpringMVC中如何返回Json数据?
22. Spring常用的设计模式?
23. Spring事务管理方式?
24. @Resource和AutoWired区别?
25. Transactional(rollbackFor = Exception.class)注解了解吗?
Spring是一款开源的轻量级的Java开发框架,我们一般说spring框架指的是spring Framework,它是很多模块的集合,使用这些模块可以方便的协助我们开发,比如说Spring支持IOC(Inversion of Control:控制反转) 和AOP(Aspect - Oriented Programming:面向切面编程),可以很方便地对数据库进行访问,可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等),对单元测试支持较好,支持RESTful 风格 java应用程序的开发
很多人对Spring,SpringMVC,SpringBoot三者傻傻分不清,简单介绍一下这三者:
轻量:Spring是轻量级的,基本的班级大约是2MB
控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面编程AOP:Spring支持面向切面编程,把应用业务逻辑和系统服务分开
容器:Spring包含并管理应用中对象的生命周期和配置
MVC框架:Spring的WEB框架是一个精心设计的框架,而MVC是WEB的一个很好的替代品
事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务
异常管理:Spring提供方便的API把具体技术相关的异常转化为一致的unchecked异常
这是基本的Spring模块,提供Spring框架的基础功能,BeanFactory是任何以Spring为基础的应用核心,Spring框架建立在此模块上,使Spring成为一个容器。
Bean工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码分离,常用的BeanFactory实现是XMLBeanFactory类
IOC(Inversion Of Controller控制反转),是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理。IOC在其它语言中也有应用,并非Spring特有。IOC容器是Spring用来实现IOC的载体,IOC容器实际就是一个Map(key,value),Map中存放的是各种对象。
将对象之间的相互依赖关系交由IOC容器管理,并由IOC容器完成对象的注入。这样就可以很大程度上简化应用的开发,把应用从复杂的依赖关系解放出来。IOC容器就像是一个工厂,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来,在实际项目中一个Service类可能由几百上千个类作为他的底层,假如我们需要实例化这个Service,可能每次要搞清楚这个Service所有底层类的构造函数,这可能会把人逼疯。如果利用IOC,只需要配置好,在需要的地方引用就行了,大大增加了项目的可维护性且降低了开发难度
IOC负责创建对象,管理对象(通过依赖注入DI),装配对象,配置对象,并且管理这些对象的生命周期
作用:
优点:
面向切面编程