本文转载自:一定要面试才刷面试题?Spring160道面试题+Spring书籍助你学Spring,查漏补缺!
虽名为"面试题",但一定要面试前才刷面试题嘛?其实在日常工作中多刷一些面试题对自己也是挺有帮助的!为此笔者收集了160道Spring中高级面试题给大家学习,查漏补缺!
另外笔者还收集了一些Spring的编程书籍,详情见文末!
一、Spring 面试题(基础篇)
- 什么是 spring?
- 使用 Spring 框架的好处是什么?
- Spring 由哪些模块组成?
- 核心容器(应用上下文) 模块。
- BeanFactory – BeanFactory 实现举例。
- XMLBeanFactory
- 解释 AOP 模块
- 解释 JDBC 抽象和 DAO 模块。
- 解释对象/关系映射集成模块。
- 解释 WEB 模块。
- Spring 配置文件
- 什么是 Spring IOC 容器?
- IOC 的优点是什么?
- ApplicationContext 通常的实现是什么?
- Bean 工厂和 Application contexts 有什么区别?
- 一个 Spring 的应用看起来象什么?
- 什么是 Spring 的依赖注入?
- 有哪些不同类型的 IOC(依赖注入)方式?
- 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
- 什么是 Spring beans?
- 一个 Spring Bean 定义 包含什么?
- 你怎样定义类的作用域?
- 解释 Spring 支持的几种 bean 的作用域。
- Spring 框架中的单例 bean 是线程安全的吗?
- 解释 Spring 框架中 bean 的生命周期。
- 哪些是重要的 bean 生命周期方法?
- 什么是 Spring 的内部 bean?
- 在 Spring 中如何注入一个 java 集合?
- 什么是 bean 装配?
- 什么是 bean 的自动装配?
- 解释不同方式的自动装配 。
- 自动装配有哪些局限性 ?
- 你可以在 Spring 中注入一个 null 和一个空字符串吗?
- 什么是基于 Java 的 Spring 注解配置?
- 什么是基于注解的容器配置?
- 怎样开启注解装配?
- @Required 注解
- @Autowired 注解
- @Qualifier 注解
- 在 Spring 框架中如何更有效地使用 JDBC?
- JdbcTemplate
- Spring 对 DAO 的支持
- 使用 Spring 通过什么方式访问 Hibernate?
- Spring 支持的 ORM
- 如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来?
- Spring 支持的事务管理类型
- Spring 框架的事务管理有哪些优点?
- 你更倾向用那种事务管理类型?
- 解释 AOP
- Aspect 切面
- 在 Spring AOP 中,关注点和横切关注的区别是什 么?
- 连接点
- 通知
- 切点
- 什么是引入?
- 什么是目标对象?
- 什么是代理?
- 有几种不同类型的自动代理?
- 什么是织入。什么是织入应用的不同点?
- 解释基于 XML Schema 方式的切面实现。
- 解释基于注解的切面实现
- 什么是 Spring 的 MVC 框架?
- DispatcherServlet
- WebApplicationContext
- 什么是 Spring MVC 框架的控制器?
- @Controller 注解
- @RequestMapping 注解
部分参考答案
1. 什么是 spring?
Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进 良好的编程习惯。
2. 使用 Spring 框架的好处是什么?
- 轻量:Spring 是轻量的,基本的版本大约 2MB。
- 控制反转:Spring 通过控制反转实现了松散耦合,对象 们给出它们的依赖,而不是创建或查找依赖