Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring知识整合 —— Spring概述篇

Spring知识整合 —— Spring概述篇

原创
作者头像
运维搬砖
修改于 2019-07-30 02:10:00
修改于 2019-07-30 02:10:00
8410
举报
文章被收录于专栏:LeorizonLeorizon

1. 什么是spring?

Spring 是一个轻量级的Java 企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2. 使用Spring框架的好处是什么?

  • 轻量:Spring 是轻量的,基本的版本大约2MB。
  • 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
  • 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
  • 容器:Spring 包含并管理应用中对象的生命周期和配置。
  • MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
  • 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
  • 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

3. Spring由哪些模块组成?

以下是Spring 框架的基本模块:

  • Core module
  • Bean module
  • Context module
  • Expression Language module
  • JDBC module
  • ORM module
  • OXM module
  • Java Messaging Service(JMS) module
  • Transaction module
  • Web module
  • Web-Servlet module
  • Web-Struts module
  • Web-Portlet module

4. 核心容器(应用上下文) 模块。

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

5. BeanFactory – BeanFactory 实现举例。

Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离。

最常用的BeanFactory 实现是XmlBeanFactory 类。

6. XMLBeanFactory

最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

7. 解释AOP模块

AOP模块用于发给我们的Spring应用做面向切面的开发, 很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共通性。这个模块将元数据编程引入Spring。

8. 解释JDBC抽象和DAO模块。

通过使用JDBC抽象和DAO模块,保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题,它在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层。它还利用Spring的AOP 模块给Spring应用中的对象提供事务管理服务。

9. 解释对象/关系映射集成模块。

Spring 通过提供ORM模块,支持我们在直接JDBC之上使用一个对象/关系映射映射(ORM)工具,Spring 支持集成主流的ORM框架,如Hiberate,JDO和 iBATIS SQL Maps。Spring的事务管理同样支持以上所有ORM框架及JDBC。

10. 解释WEB 模块。

Spring的WEB模块是构建在application context 模块基础之上,提供一个适合web应用的上下文。这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象。它也有对Jakarta Struts的支持。

11. Spring配置文件

Spring配置文件是个XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用。

12. 什么是Spring IOC 容器?

Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

13. IOC的优点是什么?

IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和JNDI查找机制。最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载。

14. ApplicationContext通常的实现是什么?

  • FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。
  • ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。
  • WebXmlApplicationContext:此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。

15. Bean 工厂和 Application contexts 有什么区别?

Application contexts提供一种方法处理文本消息,一个通常的做法是加载文件资源(比如镜像),它们可以向注册为监听器的bean发布事件。另外,在容器或容器内的对象上执行的那些不得不由bean工厂以程序化方式处理的操作,可以在Application contexts中以声明的方式处理。Application contexts实现了MessageSource接口,该接口的实现以可插拔的方式提供获取本地化消息的方法。

16. 一个Spring的应用看起来象什么?

  • 一个定义了一些功能的接口。
  • 这实现包括属性,它的Setter , getter 方法和函数等。
  • Spring AOP。
  • Spring 的XML 配置文件。
  • 使用以上功能的客户端程序。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Proe经验分享
今天看到一篇学习Proe的经验分条总结,分享给大家,希望大家能够取其之长,补己之短,不断地进步。
枫桦
2022/08/02
3880
【编程思想】给学C++的人N条忠告
N条忠告: 1.把C++当成一门新的语言学习; 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visu
程序员互动联盟
2018/03/13
8850
【编程思想】给学C++的人N条忠告
CAD,SolidWorks相比ProE,UG等软件有什么区别?
在后台看到很多粉丝问cad、solidworks、 ug、 proe这几款软件哪个好用,哪个更好,哪个更易上手更易学习,哪个应用较广等等问题,很是多,不知道应该学习哪款三维软件,其实这个要根据情况而定,这几款机械类软件各有自己的优点。
糯米导航
2022/07/17
2.8K0
CAD,SolidWorks相比ProE,UG等软件有什么区别?
《Flask Web开发 基于Python的Web应用开发实战》简评
《Flask Web开发 基于Python的Web应用开发实战》,O'Reilly"动物书系列"的"狗书",应该是很多Flask初学者被推荐使用的入门书,但是这本书真的适合初学者吗?
HaythamXu
2019/09/15
1.2K0
Go语言学习路线 - 4.入门篇:快速体系化地入门Go语言
如今互联网资料泛滥,入门编程语言的途径有很多种选择,但如果要我推荐,只有一个建议 - 研读一本该编程语言最优秀的基础书籍。
junedayday
2021/08/05
4780
初学者的福利,NLP呕心总结资料包
第一种,在实践中学习,找一个特定的任务,譬如文本分类、情感分析等。然后以做好任务为导向的去挖掘和这一个任务相关的知识点。
AI科技大本营
2019/03/15
8590
初学者的福利,NLP呕心总结资料包
怎么学JavaScript?
怎么学JavaScript?正题开始,前端怎么学,应该因人而异,别人的方法未必适合自己。 就说说我的学习方法吧。 我把大部分时间放在学习js上了。因为这个js的学习曲线,先平后陡。 项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题。 我是怎么学的呢,看书,分析源码。
卢衍飞
2022/11/12
6950
怎么学JavaScript?
C++STL入门汇总(OJ必备)
做了没多少OJ题目,就发现了自己在STL使用的不足,明明可以更简单的完成一些工作,却总是因为不懂STL完全自己设计,导致对于一些简单问题仍然花费很多时间。因此,学习STL迫在眉睫!!!
种花家的奋斗兔
2020/11/13
1K0
如何正确学习JavaScript(写给非JavaScript程序员和编程新手)
目录 不要这样学习JavaScript 本课程资源 1~2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:WebStorm 第一个项目-动态问答应用 5~6周(正则表达式,Window对象,事件,jQuery) 7周,可延长到8周(类,继承,HTML5) 继续提升 一些鼓励的话 既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript
前朝楚水
2018/04/03
1.5K0
致读者Andy:关于初学者学习Python需要注意的问题!
最近有位微信昵称为Andy的读者在后台留言,问我关于新手学习Python的问题。他的问题是关于以下三点,相信很多读者都有相同的问题。
LogicPanda
2018/08/30
6840
致读者Andy:关于初学者学习Python需要注意的问题!
编程新手码住!最适合学习的Python书籍
小E发现身边越来越多的朋友想要自学编程,希望走上程序猿道路。那今天就给大家整理了几本适合编程新手入门的Python学习书籍,希望大家抓住双十一的尾巴,买书学习吧~ 《Python编程 从入门到实践》 这是一本比较适合入门学习者的书籍。全书分为两部分:第一部分介绍用Python编程所必须了解的基本概念,包括matplotlib、NumPy和Pygal等强大的Python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Pyth
腾讯NEXT学位
2020/11/12
9080
分享:自学编程的方法
不管是在某些论坛上,或者在微博上,都看到过很多人提问如何自学编程。心声共鸣啊,我就是从完全自学开启编程之路的。 要说到自学的过程、要多长时间才算学会、有什么具体方法等问题真不好回答。每个人对新鲜事物的接受能力不同,也决定了学习方法各异,难道说出一个标准的答案来。更何况这世界上本来就不存在标准答案,只不过是某些过于激进的文明,非要强调标准罢了。 不管怎么谈,我想啊,希望通过自学走上编程之路的朋友,都必须先认清自学的优点与缺点,尤其是缺点,你必须先有所了解,有心理准备,不要到真正实践的时候又打退堂鼓。 自学有以
小小科
2018/05/02
1.1K0
初学者如何高效率的掌握一门编程语言
学习作为一种获取知识交流情感的方式,已经慢慢的成为人们日常生活当中不可缺少的一项内容。
老九君
2020/07/02
7630
「核心基础篇」Guide的Java后端书架来啦!都是Java程序员必看的书籍?
封面是在武汉租的房子里的一个小书架,基本都是今年买的书,所以看着不是很多。每次看完一本书之后,我都会带回家里,避免占位置以及搬家的时候太麻烦了。
Guide哥
2020/06/04
9340
统一回复《怎么学JavaScript?》
于时不时,有同学私信问我怎么学前端的问题。 这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了。 首先说句题外话。关于有人管我叫大神的事情。 个人感觉这跟你买东西时,人家管你叫帅哥一样,你答应与否都无妨。 正题开始,前端怎么学,应该因人而异,别人的方法未必适合自己。 就说说我的学习方法吧。 我把大部分时间放在学习js上了。因为这个js的学习曲线,先平后陡。 项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题。 我是怎么学的呢,看书,分析源码。 个人这几天统计了一下,前端
用户1667431
2018/04/18
1.2K0
机器学习自学指南
有很多途径来学习机器学习。有丰富的资源:有书籍,有课程可以参与,可以参加比赛,有大量供你使用的工具。在这篇文章中,我想围绕这些活动提出一些你机器学习之旅大致会有的阶段并在你程序员通往到机器学习大师之路上给出一个大概的顺序,以及在各个层次上有哪些可供你利用的资源
xixigiggling
2018/02/07
5930
每个编程大神都读过的5本书
上次我们发书单时,有身在国外的读者提出电子书的需求。如今,电子设备和移动互联网为阅读和学习提供了极大的便利性,电子书有了全新体验。因此本文提供了这5本书的亚马逊电子书链接,希望对你有所帮助。(还有优惠活动正在进行中哦!)
IT阅读排行榜
2019/12/24
1.1K0
每个编程大神都读过的5本书
论新手该如何学习java?
由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间,还有一个很重要的原因就是java这门语言更适合商业应用,所以高校里大部分博士老师们对此语言的了解甚至不比本科生多。 在这种环境下,很多人对java感到茫然,不知所措,不懂java能做什么。 即便知道了java很有用,也不清楚该从哪里入手。 所以就有了java入门难,这一说法。 一. 思考一下 学习Java之前,先别急,静下心来好好想想: 1)你对学习Java是否有兴趣? 2)你是否能静下心来坚持不懈地学习? 嗯,这是个容易但又绝对不应该忽
企鹅号小编
2018/01/09
1.5K0
这些年,安放在我工位上的那些书
博主提交离职申请之后,就慢慢的将自己工位上的一些东西收拾回家,其中光书就运了好多次,其中有好书也有烂书,这里就站在我个人的视角来聊一聊这些书。
三哥
2018/07/31
3850
这些年,安放在我工位上的那些书
元学习-02
本篇与上一篇一样,是XD的元认知课程的学习笔记。本篇将从技能的分类谈到面对不同的分类的时候该如何自学,接着再通过这一套自学小套路返回去推导出比技能分类更深一层的原理——大脑运作原理。并最终通过这个来总结一套能够快速入门的学习套路。 这次的文章比较长,可以直接看图片,以及最终的小套路。 什么是取得技能,什么是学会技能 一般初学者的几个错误认知——认为必须要有天赋,要看懂每一步,然后再从基础做起,并且很讨厌走捷径。于是最终就很自然地从开始到放弃。但初学者搞错了一个概念——取得技能和学会技能是两码事。取得技
用户1335799
2018/03/12
6530
元学习-02
相关推荐
Proe经验分享
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档