码迷,mamicode.com
首页 > 编程语言 > 详细

Spring面试题(一)

时间:2021-07-05 17:09:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:管理数据   任务   temp   功能   测试框架   mvc框架   流行   struct   factor   

1、简单介绍一下 Spring bean 的生命周期

1.实例化 Instantiation

2.属性赋值 Populate

3.初始化 Initialization

4.销毁 Destruction

 

2、Spring 各模块结构

 技术图片


(1)核心容器:包括 Core、Beans、Context、EL 模块。

Core 模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。Beans 模块:提供了框架的基础部分,包括反转控制和依赖注入。其中 Bean Factory 是容器核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口编程,而非面向实现编程;所有应用程序对象及对象间关系由框架管理,从而真正把你从程序逻辑中把维护对象之间的依赖关系提取出来,所有这些依赖关系都由 BeanFactory 来维护。

Context 模块:以 Core 和 Beans 为基础,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等;核心接口是 applicationContext。

EL 模块:提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。

(2)AOP、Aspects 模块:

AOP 模块:Spring AOP 模块提供了符合 AOP Alliance 规范的面向方面的编程(aspect-oriented programming)实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中;这样各专其职,降低业务逻辑和通用功能的耦合。

Aspects 模块:提供了对 AspectJ 的集成,AspectJ 提供了比 Spring ASP 更强大的功能。

数据访问/集成模块:该模块包括了 JDBC、ORM、OXM、JMS 和事务管理。

事务模块:该模块用于 Spring 管理事务,只要是 Spring 管理对象都能得到 Spring 管理事务的好处,无需在代码中进行事务控制了,而且支持编程和声明性的事务管理。

(3)Data Access相关模块

JDBC 模块:提供了一个 JBDC 的样例模板,使用这些模板能消除传统冗长的 JDBC 编码还有必须的事务控制,而且能享受到 Spring 管理事务的好处。

ORM 模块:提供与流行的“对象-关系”映射框架的无缝集成,包括 Hibernate、JPA、MyBatis 等。而且可以使用 Spring 事务管理,无需额外控制事务。

OXM 模块:提供了一个对 Object/XML 映射实现,将 java 对象映射成 XML 数据,或者将 XML 数据映射成 java对象,Object/XML 映射实现包括 JAXB、Castor、XMLBeans 和 XStream。

JMS 模块:用于 JMS(Java Messaging Service),提供一套 “消息生产者、消息消费者”模板用于更加简单的使用 JMS,JMS 用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

(4)web相关模块

Web/Remoting 模块:Web/Remoting 模块包含了 Web、Web-Servlet、Web-Struts、Web-Porlet 模块。

Web 模块:提供了基础的 web 功能。例如多文件上传、集成 IoC 容器、远程过程访问(RMI、Hessian、Burlap)以及 Web Service 支持,并提供一个 RestTemplate 类来提供方便的 Restful services 访问。

Web-Servlet 模块:提供了一个 Spring MVC Web 框架实现。Spring MVC 框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的 JSP 标签,完全无缝与 Spring 其他技术协作。

Web-Struts 模块:提供了与 Struts 无缝集成,Struts1.x 和 Struts2.x 都支持

(5)Test 模块: Spring 支持 Junit 和 TestNG 测试框架,而且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。

3、Spring 能帮我们做什么?

a. Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系。Spring 根据配置文件来进行创建及组装对象间依赖关系,只需要改配置文件即可

b. Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。Spring 面向切面编程能提供一种更好的方式来完成,一般通过配置方式,而且不需要在现有代码中添加任何额外代码,现有代码专注业务逻辑。

c. Spring 能非常简单的帮我们管理数据库事务。采用 Spring,我们只需获取连接,执行 SQL,其他事物相关的都交给 Spring 来管理了。

d. Spring 还能与第三方数据库访问框架(如 Hibernate、JPA)无缝集成,而且自己也提供了一套 JDBC访问模板,来方便数据库访问。

e. Spring 还能与第三方 Web(如 Struts、JSF)框架无缝集成,而且自己也提供了一套 Spring MVC框架,来方便 web 层搭建。

f. Spring 能方便的与 Java EE(如 Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。

更多面试题可关注"demo锁屏面试题"公众号通过小程序或app学习面试题

 技术图片

Spring面试题(一)

标签:管理数据   任务   temp   功能   测试框架   mvc框架   流行   struct   factor   

原文地址:https://www.cnblogs.com/demosoftware/p/14965074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!