1.不同版本的Spring Framework有哪些主要功能?
2.什么是Spring Framework?
Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于注解的配置、基于XML的配置,基于java的配置。
3.Spring框架有哪些优点?请谈谈你的看法。
容器。Spring框架是一个容器,能管理项目中的所有对象。
IOC(控制反转)。Spring将创建对象的方式反转给了程序,简化了开发,降低了代码的耦合性和侵入性。(耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。)
AOP(切面编程)。面向切面编程,简言之,就是将纵向重复的代码横向抽取出来,Spring框架应用了面向切面的思想,主要体现在为容器中管理的对象生成动态代理对象。
方便对程序进行声明式事务管理,我们只需要通过配置即可完成事务管理。
方便与其它框架进行整合,Spring可以集成其他框架,如Structs、Hibernate、Mybatis等。
4.Spring Framework有哪些不同的功能?
轻量级-Spring在代码量和透明度方面都很轻便;
IOC-控制反转;
DI-依赖注入;需要有IOC环境,在Spring创建Bean对象时,动态的将依赖对象注入到Bean对象中去,依赖注入最大的好处就是解耦合;
AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚;(内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。)
容器-Spring负责创建和管理对象的生命周期和配置;
MVC-对web应用提供了高度可配置性,其他框架的集成也十分方便;
事务管理-提供了用于事务管理的通用抽象层。Spring的事务支持也可用于容器较少的环境;
JDBC异常-Spring的JDBC抽象层提供了一个异常层次结构,简化了错误处理策略。
5.Spring Framework中有多少个模块,它们分别是什么?
1)Spring核心容器,Core Container基本上是Spring Framework的核心。它包含以下模块:
Spring Core
Spring Bean
Spring Expression Language
Spring Context
2)数据访问/集成,Data Access/Integration,该层提供与数据库交互的支持,包含以下模块:
JDBC(Java DataBase Connectivity)
ORM(Object Relational Mapping)
OXM(Object XML Mappers)
JMS(Java Messageing Service)
Transaction
3)Web,该层提供了创建Web应用程序的支持。它包含以下模块:
Web
Web-Servlet
Web-Socket
Web-Portlet
4)AOP-该层支持面向切面编程
5)Instrumentation-该层为类检测和类加载器实现提供支持。
6)Test - 该层为使用JUnit和Test NG进行测试提供支持。
7)Messaging - 该模块为STOMP提供支持,它还支持注解编程模型,该模型用于从WebSocket客户端路由和处理STOMP消息。
8)Aspects - 该模块为与AspectJ的集成提供支持。
Spring Core:核心类库,提供IOC服务;
Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
Spring AOP:AOP服务;
Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;
Spring ORM:对现有的ORM框架的支持;
Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;
Spring MVC:提供面向Web应用的Model-View-Controller实现。
8.秋招复习简单整理之Spring面试一般问题的更多相关文章
-
9.秋招复习简单整理之Spring面试AOP和IOC的理解
1.Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但不适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用. AOP,一般称为面向切面,作为面向对象的一种补充,用 ...
-
10.秋招复习简单整理之CSMA/CD协议
我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用.因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会相互干扰,使得所发送的数据被破坏.因此,如何协调总线上各计算机的工作 ...
-
7.秋招复习简单整理之请你讲讲 Statement 和 PreparedStatement 的区别?哪个性能更好?
Statement和PreparedStatement都是数据库用于执行SQL语句的句柄,但是PreparedStatement代表一个预编译的SQL. 以下是PreparedStatement和St ...
-
6.秋招复习简单整理之请你谈谈JDBC的反射,以及它的作用?
通过反射com.mysql.jdbc.Driver类,实例化该类时会调用该类的静态代码块,该代码块会去java的DriverManager类中注册自己,DriverManager管理所有已注册的驱动类 ...
-
5.秋招复习简单整理之请介绍一下List和ArrayList的区别,arrayList和HashSet区别?
第一问:List是接口,ArrayList是List的实现类. 第二问:ArrayList是List的实现类,HashSet是Set的实现类,List和Set都实现了Collection接口. Arr ...
-
4.秋招复习简单整理之java支持多继承吗?
java仅支持单继承,但支持接口多实现.
-
3.秋招复习简单整理之List、Map、Set三个接口存取元素时,各有什么特点?
List.Set都是单列元素的集合,它们有共同的父接口Collection. List存取有序可重复元素 存元素:调用add方法,存的元素先来后到,有顺序,当然也可以插队,指定存在某个位置,调用add ...
-
2.秋招复习简单整理之String、StringBuffer、StringBuilder的区别和联系
String特点: 1.String是不可变对象,一旦赋值创建就不变,这意味着对String的一切修改将产生一个新的字符串,比如String的subString,replace.toUpperCase ...
-
11.秋招复习简单整理之什么是ICMP协议,ICMP协议的功能是什么?
ICMP即 InternetControlMessageProtocol,是网络控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息指网络通不通.主机是否 ...
随机推荐
-
tar命令实用介绍
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
-
Leetcode 290 Word Pattern STL
Leetcode 205 Isomorphic Strings的进阶版 这次是词组字符串和匹配字符串相比较是否一致 请使用map来完成模式统计 class Solution { public: boo ...
-
2014 Super Training #4 D Paint the Grid Again --模拟
原题:ZOJ 3780 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 刚开始看到还以为是搜索题,没思路就跳过了.结 ...
-
【Ubuntu Java 开发环境搭建 】
配置环境变量 在终端下: sudo gedit /etc/profile 这里当然有些熟悉ubuntu的朋友也可以用 vim, 刚从windows转过来的朋友还是用gedit看着舒服写. ...
-
文件夹添加右键DOS快捷入口
1.自带的方法 win7: 按住shift键然后右键点击文件夹,菜单里会出现“在此处打开命令窗口”一项,其实就相当于在当前位置打开Dos窗口,这个是系统自带的. winxp: 打开“我的电脑”,点击菜 ...
-
JDK源码之AQS源码剖析
除特别注明外,本站所有文章均为原创,转载请注明地址 AbstractQueuedSynchronizer(AQS)是JDK中实现并发编程的核心,平时我们工作中经常用到的ReentrantLock,Co ...
-
java学习日记-基础-列出2~100内的素数
素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数 方法一:素数是除去能被2整除.3整除.5整除.7整除的整数,但包含2,3,5,7 public class Sushu { pub ...
-
poj3130 (半平面交
题意:判断是否存在内核. 半平面交存板子. /* gyt Live up to every day */ #include<cstdio> #include<cmath> #i ...
-
Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
一.解决方案: 方案一: orm.Debug = false orm.DefaultTimeLoc = time.UTC orm.RegisterDriver("mysql", o ...
-
Exchange2016 &; Skype for business 集成之一配置合作伙伴应用程序
准备条件 为Skype for Business Server和Exchange Server之间建立服务器到服务器的身份验证,您必须做两件事:1)您必须为每台服务器分配合适的证书(详细参考文档htt ...