`
bugyun
  • 浏览: 551670 次
社区版块
存档分类
最新评论

Spring常见问题总结面试(转)

 
阅读更多

转自:http://blog.csdn.net/DERRANTCM/article/details/46591187

 

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

    Spring因此Spring在面试中常被问到,特此对Spring的一些问题做出总结,一起学习和参考。
 

1、Spring的主要特性是依赖在入( DI )和面向切面编程(AOP)。

2、什么是依赖注入

依赖注入(DependencyInjection)和控制反转(Inversionof Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。

3、什么是面向切面编程

针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

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

基于POJO的轻量级和最小侵入性编程,

通过依赖注入和面向接口实现松耦合,

基于切面和惯例进行声明式编程,

通过切面和模板减少样板式代码。

5、依赖注入有哪些方式

接口注入(interface injection) 接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入。

Set注入(setterinjection)Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。

构造注入(constructor injection)构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素 

6、Spring应用上下文的有哪些?

ClassPathXmlApplicationContext——从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当作类资源。

FileSystemXmlApplicationcontext该取文件系统统下XML配置文件并加载上下文定义。

XmlWebApplicationContext——读取Web应用下的XML 配置文件并装载上下文定义。

使用FileSystemXmlapplicationcontext和使用ClassPathXmlApplicationContext的区别在于:

FileSystemXmlapplicationcontext在指定的文件系统路径下查找文件,

ClassPathXmlApplicationContext 是在所有的类路径(包括JAR 文件)下查找文件。

7、Bean的生命周期

下面是Spring3的Bean生命周期。

1)  Spring对Bean 进行实例化.

2)  Spring 将值和Bean的引用注入进Bean对应的属性中。

3)  如果Bean 实现了BeanNameAware 接口, Spring 将bean 的ID 传递给setBeanName() 接口方法.

4)  如果Bean实现了BeanFactoryAware 接口, Spring 将调用setBeanFactory()接口方法,将BeanFactory容器实例传入.

5)  如果Bean 实现了ApplicationcontextAware 接口 Spring 将调用setApplicationContext() 接口方法,将应用上下文的引用传入。

6)  如果Bean实现了BeanPostProcessor 接口Spring 将调用它们的postProcessBeforeInitialization 接口方法。

7)  如果Bean 实现了InitializingBean 接口,Spring 将调用它们的afterPropertiesSet()接口方法. 类似地,如果Bean 使用init-method 声明了初始化方法,该方法也会被调用。

8)  如果Bean 实现了BeanPostProcessor 接口, Spring 将调用它们的postPoressAfterInitilization方法.

9)  此时此刻Bean 已经准备就绪.可以被应用程序使用了. 它们将一直驻留在应用上下文中.直到该应用上下文补销毁。

10) 如果Bean实现了DisposableBean 接口,Spring 将调用它的destroy()接口方法。同样,如果Bean 使用destroy-method 声明了销毁方法,方法也会被调用。 

8、Spring3.0总体模块框架:


 

-- 核心Spring容器:Spring框架最核心部分,负责Spring应用中Bean的创建,配置和管理。所有模块都构建于核心容器之上。

-- Spring 的AOP模块:在AOP模块中,Spring对面向切面编程提供了丰富的支持。这个模块是Spring应用系统开发切面的基础。AOP可以帮助应用对象解耦。

-- 数据访问与集成:Spring的JDBC和DAO模块封装了这些模板式代码,使我们的数据库代码变得简单明了,还可以避免因为释放数据库资源失败而引起的问题。该模块在几种数据库服务的错误信息之上构建了一个语义且丰富异常层

-- Web 和远程调用:Spring不但集成了多种流行的MVC 框架,它的Web 和远程调用模块也自带了一个强大的MVC 框架,有助于应用提升Web 层技术的松散耦合。该框架提供了两种形式面向传统Web 应用的基于Servlet的框架和面向使用Java Portlet API基于Portlet 的应用。除了面向用户的Web 应用, 该模块还提供了构建与其他应用交互的几种远程调用的选择。Spring远程调用服务集成了RMI. Hession、 Burlap、JAX-WS,同时Spring还自带了一个远程调用框架HTTP invoker。

-- l测试:Spring提供了调试模块来测试Spring应用。

9、Spring常见命名空间:

 

 

10、Bean的作用域:

 

 
 
分享到:
评论

相关推荐

    Spring常见面试题总结

    Spring常见面试题总结

    Spring和SpringMVC面试问题总结(15个)

    Spring和SpringMVC面试问题总结 1.Spring中AOP的应用场景、Aop原理、好处? 2.Spring中IOC的作用与原理?对象创建的过程。 3.介绍spring框架 4.Spring常见创建对象的注解? 5.Spring中用到的设计模式 6.Spring的优点...

    Spring Cloud中关于Feign的常见问题总结

    SpringCloud中关于Feign的常见问题总结,包括常用的请求注解、@PathVariable、FeignClient多参数的构造等

    Spring常见面试(笔试)题

    总结这些面试题,我们可以看出Spring的核心特性包括依赖注入、面向切面编程、与其他框架的集成能力以及事务管理。掌握这些知识点对于Java开发人员来说至关重要,能够提升技术水平并在面试中展现出专业素养。

    spring常见面试题(包含答案)

    Spring 框架知识点总结 Spring 是一个 Java 企业级应用的开源开发框架,主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的...

    47 Spring总结及常见面试问题与答案集锦慕课专栏1

    Spring框架是Java开发中最常用的轻量级框架之一,它的出现极大地简化了企业级应用的开发。以下是关于Spring框架的一些核心知识点及其详细...此外,了解如何在面试中回答关于Spring的问题,也是展示专业技能的有效方式。

    2023最新JAVA面试题集

    2023年最新版--Java+最常见的+200++面试题汇总+答案总结汇总 阿里百度美团面试题合集 大数据面试题 100道 多线程面试59题(含答案) 最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 ...

    面试及常见问题总结(偏Java)

    以下是一些常见的Java和相关技术面试问题的详细解释: 1. **`GROUP BY`与`HAVING`**: `GROUP BY`用于将数据分组,而`HAVING`则在`GROUP BY`后过滤满足特定条件的分组。例如,你可以使用`GROUP BY`按部门分组员工...

    SpringCloud常见面试题.docx

    Spring Cloud 面试题知识点总结 Spring Cloud 是当前最常用的微服务开发框架,已在企业级开发中大量应用。下面是 Spring Cloud 的知识点总结: 为什么需要 Spring Cloud 随着业务逐渐发展,单体结构的应用会变得...

    java面试常见问题总结

    ### Java面试常见问题总结 #### 死锁相关 在Java面试中,死锁是一个非常重要的概念,面试官可能会从不同的角度来考察候选人对于死锁的理解程度。以下是对死锁相关知识点的详细介绍: - **产生死锁的原因:** 1....

    Spring面试题总结.pdf

    JDBC抽象和DAO模块为数据库操作提供了清晰的抽象层,避免了资源泄露和数据库资源错误关闭的问题,同时提供了统一的异常访问层。此模块还利用了Spring的AOP模块来为DAO实现提供事务管理服务。 对象/关系映射集成模块...

    Struts+Hibernate+Spring常见面试题

    【面试题总结】 1. 了解Struts的工作流程和优缺点,理解Action的线程安全性问题。 2. 理解MVC模式,知道Struts如何实现MVC,以及MVC的组成部分。 3. 熟悉Spring的AOP和IOC概念,理解它们在Spring中的应用。 4. 掌握...

    全网最热spring问题总结.pdf

    总结了常见的spring面试题,方便学习者查漏补缺。 使用 Spring 框架的好处是什么? 轻量: Spring 是轻量的, 基本的版本大约 2MB。 控制反转: Spring 通过控制反转实现了松散耦合, 对象们给出它们的依 赖, ...

    java面试常见问题总结word版

    以上只是Java面试中常见的部分知识点,实际面试可能还会涵盖更多主题,如多线程、IO流、设计模式、JVM内存模型、异常处理、Spring框架等。深入理解和掌握这些概念对于成为一位优秀的Java开发者至关重要。

    SpringCloud面试专题.pdf

    总结来说,Spring Cloud 提供了一个全面的微服务框架,通过服务注册与发现、断路器、负载均衡等机制,解决了分布式系统中常见的问题,增强了系统的稳定性和可扩展性。而 Hystrix 和 Feign 则是其中的关键组件,分别...

    java面试学习指南全集.zip

    总结Dubbo.md 总结Java基础.md 总结Java多线程.md 总结Java集合.md 总结JVM.md 总结Mybatis.md 总结MySQL.md 总结Redis.md 总结RocketMQ.md 总结Spring.md 总结计算机网络.md ...Spring面试常见问题.md

    SpringCloud面试专题

    【Spring Cloud面试专题】 Spring Cloud 是一套微服务解决方案,它基于 Spring Boot 实现,为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举...

    SpringCloud知识点暨面试题总结(2).pdf

    SpringCloud是当前微服务架构下非常流行的一个框架,它是基于SpringBoot的,用于快速构建分布式系统中的一些常见模式,比如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举...

    JAVA面试问题,自己和别人总结

    本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。 一、JAVA基础部分 * 抽象类和接口的区别 * 作用域public、private、protected的区别 * 重写和重载的区别 *...

Global site tag (gtag.js) - Google Analytics