目录:
Spring 是什么?
Spring 的优点?
Spring 懒加载机制
BeanFactory和ApplicationContext有什么区别?
Spring Bean 的5种作用域
Spring Bean 的生命周期
Spring 如何处理线程并发问题?
Spring 框架中都用到了哪些设计模式?
Spring 事务的实现方式和实现原理
Spring 框架中提供了5种不同类型的事件?
1、 Spring 是什么?
Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。
1.1、Spring 特征
轻量:从大小与开销两方面而言Spring都是轻量的,完整的Spring框架可以在一个大小只有1M多的JAR文件里发布,并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型的,Spring应用中的对象不依赖于Spring的特定类。
控制反转:Spring通过一种称作控制反转IOC的技术促进了低耦合。当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或查找依赖对象。
面向切面:Spring支持面向切面的编程,并目把应用业务逻辑和系统服务分开。
容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建…基于一个可配置原型,你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例…以及它们是如何相互关联的。
框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型的是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等),将应用逻辑的开发留给开发者。
1.2、常用模块:
Spring Core:核心类库,主要组件是BeanFactory,提供IOC服务;
Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
Spring AOP:AOP服务;
Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;
Spring ORM:对现有的ORM框架的支持;
Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;
Spring MVC:MVC框架是一个全功能的面向Web应用程序的Model-View-Controller实现,高度可配置,容纳了大量视图技术。