没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1.Spring概述
1.1 什么是spring?
Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发
的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级
开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者
可以专注于应用程序的开发。
Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的
两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-
oriented programming,AOP)。
为了降低Java开发的复杂性,Spring采取了以下4种关键策略**
基于POJO的轻量级和最小侵入性编程;
通过依赖注入和面向接口实现松耦合;
基于切面和惯例进行声明式编程;
通过切面和模板减少样板式代码。
1.2 Spring的俩大核心概念
IOC(控制翻转):
控制翻转,也叫依赖注入,他就是不会直接创建对象,只是把对象声明出来,在代码 中不直
接与对象和服务进行连接,但是在配置文件中描述了哪一项组件需要哪一项服 务,容器将他
们组件起来。在一般的IOC场景中容器创建了所有的对象,并设置了必 要的属性将他们联系
在一起,等到需要使用的时候才把他们声明出来,使用注解就跟 方便了,容器会自动根据注
解把对象组合起来
AOP(面对切面编程)
面对切面编程,这是一种编程模式,他允许程序员通过自定义的横切点进行模块 化,将那些
影响多个类的行为封装到课重用的模块中。 例子:比如日志输出,不使用AOP的话就需要把
日志的输出语句放在所有类中,方法 中,但是有了AOP就可以把日志输出语句封装一个可重
用模块,在以声明的方式将他 们放在类中,每次使用类就自动完成了日志输出。
1.3 Spring框架的设计目标,设计理念,和核心是什么
Spring设计目标:Spring为开发者提供一个一站式轻量级应用开发平台;
Spring设计理念:在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分
支持OOP(面向对象)设计方法;Spring通过IOC容器实现对象耦合关系的管理,并实现依赖反
转,将对象之间的依赖关系交给IOC容器,实现解耦;
Spring框架的核心:IOC容器和AOP模块。通过IOC容器管理POJO对象以及他们之间的耦合关系;
通过AOP以动态非侵入的方式增强服务。
IOC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成
可重用的功能组件。
1.4 Spring的优缺点是什么?
优点
方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts、
Hibernate、MyBatis等)。
降低JavaEE API的使用难度
Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使
这些API应用难度大大降低。
缺点
Spring明明一个很轻量级的框架,却给人感觉大而全
Spring依赖反射,反射影响性能
使用门槛升高,入门Spring需要较长时间
1.5 Spring有哪些应用场景
应用场景:JavaEE企业应用开发,包括SSH、SSM等
Spring价值:
Spring是非侵入式的框架,目标是使应用程序代码对框架依赖最小化;
Spring提供一个一致的编程模型,使应用直接使用POJO开发,与运行环境隔离开来;
Spring推动应用设计风格向面向对象和面向接口开发转变,提高了代码的重用性和可测试性;
1.6 Spring由哪些模块组成?
Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在 核心容
器(Core Container) 、 AOP(Aspect Oriented Programming)和设备支持
(Instrmentation) 、 数据访问与集成(Data Access/Integeration) 、 Web 、 消息
(Messaging) 、 Test 等 6 个模块中。 以下是 Spring 5 的模块结构图:
spring core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖
注入(Dependency Injection,DI)功能。
spring beans:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为
Bean。
spring context:构建于 core 封装包基础上的 context 封装包,提供了一种框架式的对象访问方
法。
spring jdbc:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解
析, 用于简化JDBC。
spring aop:提供了面向切面的编程实现,让你可以自定义拦截器、切点等。
spring Web:提供了针对 Web 开发的集成特性,例如文件上传,利用 servlet listeners 进行 ioc
容器初始化和针对 Web 的 ApplicationContext。
spring test:主要为测试提供支持的,支持使用JUnit或TestNG对Spring组件进行单元测试和集成
测试。
1.7 Spring 框架中都用到了哪些设计模式?
1. 工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;
2. 单例模式:Bean默认为单例模式。
3. 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;
4. 模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
5. 观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的
对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。
1.8 详细讲解一下核心容器(spring context应用上下文) 模块
这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是 任何以spring为基础的应
用的核心。Spring 框架建立在此模块之上,它使Spring成为一个容器。
Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用
代码中分离。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据
XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的
系统或应用。
1.9 Spring框架中有哪些不同类型的事件
Spring 提供了以下5种标准的事件:
1. 上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接
口中的refresh()方法时被触发。
2. 上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的
Start()方法开始/重新开始容器时触发该事件。
3. 上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext
的Stop()方法停止容器时触发该事件。
4. 上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容
器被关闭时,其管理的所有单例Bean都被销毁。
5. 请求处理事件(RequestHandledEvent):在Web应用中,当一个http请求(request)结
束触发该事件。如果一个bean实现了ApplicationListener接口,当一个ApplicationEvent 被
发布以后,bean会自动被通知。
1.10 Spring 应用程序有哪些不同组件?
Spring 应用一般有以下组件:
接口 - 定义功能。
Bean 类 - 它包含属性,setter 和 getter 方法,函数等。
Bean 配置文件 - 包含类的信息以及如何配置它们。
Spring 面向切面编程(AOP) - 提供面向切面编程的功能。
用户程序 - 它使用接口。
1.11 使用 Spring 有哪些方式?
使用 Spring 有以下方式:
作为一个成熟的 Spring Web 应用程序。
作为第三方 Web 框架,使用 Spring Frameworks 中间层。
作为企业级 Java Bean,它可以包装现有的 POJO(Plain Old Java Objects)。
用于远程使用。
剩余21页未读,继续阅读
资源评论
- wengjinbao198308122022-06-15用户下载后在一定时间内未进行评价,系统默认好评。
王孝点
- 粉丝: 7
- 资源: 1048
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功