Spring概述

2020-12-01  本文已影响0人  dylan丶QAQ

起因:重新学习spring,虽然每天都在用,但却并不是很了解他,甚至说是不怎么了解,只是用一些基本的东西,在遇到问题的时候,按照常规思路去解决,或者去百度,
这当然是一个方法,但终究不是 长久之道,重新学一下spring,对面试,对自己都是很好的。


spring概述

面对spring学习,最简单,最直接地方法就是面向问题学习,首先,抛出以下几个问题:

接下来对其进行一个个的解析:

1.什么是spring?

Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。
它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。
Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。

Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。

Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP)。

为了降低Java开发的复杂性,Spring采取了以下4种关键策略

  1. 基于POJO的轻量级和最小侵入性编程;
  2. 通过依赖注入和面向接口实现松耦合;
  3. 基于切面和惯例进行声明式编程;
  4. 通过切面和模板减少样板式代码。

总结

2.Spring框架的设计目标,设计理念,和核心是什么?

Spring为开发者提供一个一站式轻量级应用开发平台;

在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OO(面向对象)设计方法;Spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦;

POJO和JavaBean的区别:POJO其实是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。

IoC容器和AOP模块。通过IoC容器管理POJO对象以及他们之间的耦合关系;通过AOP以动态非侵入的方式增强服务。

总结
IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。

3.Spring的优缺点是什么?

优点

  1. 方便解耦,简化开发

Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。

  1. AOP编程的支持

Spring提供面向切面编程,可以方便地实现对程序进行权限拦截、运行监控等功能。

  1. 声明式事务的支持

只需要通过配置就可以完成对事务的管理,而无需手动编程。

  1. 方便程序的测试

Spring对Junit4支持,可以通过注解方便的测试Spring程序。

  1. 方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。

  1. 降低JavaEE API的使用难度

Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

缺点

  1. Spring明明一个很轻量级的框架,却给人感觉大而全
  2. Spring依赖反射,反射影响性能
  3. 使用门槛升高,入门Spring需要较长时间

4.Spring有哪些应用场景?

应用场景:JavaEE企业应用开发,包括SSH、SSM等

Spring价值:

5.Spring由哪些模块组成?

Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和设备支持(Instrmentation) 、数据访问与集成(Data Access/Integeration) 、 Web、 消息(Messaging) 、 Test等 6 个模块中。
以下是 Spring 5 的模块结构图:

Spring5模块结构图

6.Spring 框架中都用到了哪些设计模式?

7.详细讲解一下核心容器(spring context应用上下文) 模块?

这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是 任何以spring为基础的应用的核心。Spring 框架建立在此模块之上,它使Spring成为一个容器。

Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码中分离。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

8.Spring框架中有哪些不同类型的事件?

Spring 提供了以下5种标准的事件:

9.Spring 应用程序有哪些不同组件?

Spring 应用一般有以下组件:

10.使用 Spring 有哪些方式?

使用 Spring 有以下方式:


不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

上一篇 下一篇

猜你喜欢

热点阅读