美文网首页
常见面试题-Spring概述(1)

常见面试题-Spring概述(1)

作者: 走着别浪 | 来源:发表于2019-08-16 16:00 被阅读0次

    1、什么是Spring框架?

    Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。

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

    2、使用Spring框架的带来的好处是什么?

    Dependency Injection(DI) 方法使得构造器和JavaBean properties文件中的依赖关系一目了然。

    与EJB容器相比较,IoC容器更加趋向于轻量级。这样一来IoC容器在有限的内存和CPU资源的情况下进行应用程序的开发和发布就变得十分有利。

    Spring并没有闭门造车,Spring利用了已有的技术比如ORM框架、logging框架、J2EE、Quartz和JDK Timer,以及其他视图技术。

    Spring框架是按照模块的形式来组织的。由包和类的编号就可以看出其所属的模块,开发者仅仅需要选用他们需要的模块即可。

    要测试一项用Spring开发的应用程序十分简单,因为测试相关的环境代码都已经囊括在框架中了。更加简单的是,利用JavaBean形式的POJO类,可以很方便的利用依赖注入来写入测试数据。

    Spring的Web框架亦是一个精心设计的Web MVC框架,为开发者们在web框架的选择上提供了一个除了主流框架比如Struts、过度设计的、不流行web框架的以外的有力选项。

    Spring提供了一个便捷的事务管理接口,适用于小型的本地事物处理(比如在单DB的环境下)和复杂的共同事物处理(比如利用JTA的复杂DB环境)。

    轻量:Spring 是轻量的,基本的版本大约2MB。

    控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

    面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

    容器:Spring 包含并管理应用中对象的生命周期和配置。

    MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

    事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。

    异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

    3、Spring由哪些模块组成?

    Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。

    以下是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的核心容器模块有那些。

    应用上下文模块Application context

    AOP模块

    JDBC抽象和DAO模块

    O/R映射整合模块

    Web 模块

    MVC 框架模块

    5、Spring框架的结构如何?

    6、Spring中的AOP模块

    如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用。

    AOP 即 Aspect Oriented Program 面向切面编程

    首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。

    所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务

    所谓的周边功能,比如性能统计,日志,事务管理等等

    周边功能在 Spring 的面向切面编程AOP思想里,即被定义为切面

    在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发,然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP

    AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。

    7、什么是ORM(对象关系映射)集成模块。

    Spring 的ORM模块提供对常用的ORM框架的管理和辅助支持,Spring支持常用的Hibernate,ibtas,jdao等框架的支持,Spring本身并不对ORM进行实现,仅对常见的ORM框架进行封装,并对其进行管理。

    ORM = Object/Relation Mapping 

    8、什么是DAO模块

    Spring 提供对JDBC的支持,对JDBC进行封装,允许JDBC使用Spring资源,并能统一管理JDBC事物,并不对JDBC进行实现。

    DAO = Data Access Objects 

    9、什么是WEB 模块。

    WEB模块提供对常见框架如Struts1,WEBWORK(Struts 2),JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。

    10、Spring有几种配置方式?

    将Spring配置到应用开发中有以下三种方式:

    基于XML的配置

    基于注解的配置

    基于Java的配置

    11、Spring配置中如何使用XML配置文件

    Spring的XML配置方式是使用被Spring命名空间的所支持的一系列的XML标签来实现的。Spring有以下主要的命名空间:context、beans、jdbc、tx、aop、mvc和aso。

    <beans>

        <!-- JSON Support -->

        <bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/>

        <bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>  

        <bean id="restTemplate" class="org.springframework.web.client.RestTemplate"/>

    </beans>

    下面这个web.xml仅仅配置了DispatcherServlet,这件最简单的配置便能满足应用程序配置运行时组件的需求。

    <web-app>

      <display-name>Archetype Created Web Application</display-name>

        <servlet>

            <servlet-name>spring</servlet-name>

                <servlet-class>

                    org.springframework.web.servlet.DispatcherServlet

                </servlet-class>

            <load-on-startup>1</load-on-startup>

        </servlet>  

        <servlet-mapping>

            <servlet-name>spring</servlet-name>

            <url-pattern>/</url-pattern>

        </servlet-mapping>

    </web-app>

    相关文章

      网友评论

          本文标题:常见面试题-Spring概述(1)

          本文链接:https://www.haomeiwen.com/subject/rqzajctx.html