本文概述
Spring面试问题和答案经常被问到, 因为它现在已广泛用于在Java中开发企业应用程序的框架。列出了Spring面试中最常见的40个问题。
1)什么是春天?
它是一个轻量级的, 松散耦合的集成框架, 用于用Java开发企业应用程序。
2)spring框架有什么优势?
- 预定义模板
- 松耦合
- 易于测试
- 轻巧的
- 快速发展
- 强大的抽象
- 声明式支持
更多细节…
3)spring框架有哪些模块?
- 测试
- 弹簧芯容器
- AOP, 方面和仪器
- 数据访问/集成
- 网页
更多细节…
4)什么是IOC和DI?
IOC(控制反转)和DI(依赖注入)是一种提供松散耦合的设计模式。它从程序中删除依赖项。
让我们在不遵循IOC和DI的情况下编写代码。
public class Employee{
Address address;
Employee(){
address=new Address();//creating instance
}
}
现在, Employee和Address之间存在依赖关系, 因为Employee被迫使用相同的地址实例。
让我们编写IOC或DI代码。
public class Employee{
Address address;
Employee(Address address){
this.address=address;//not creating instance
}
}
现在, 由于没有强迫Employee使用相同的地址实例, 因此Employee和Address之间不再存在依赖关系。它可以使用任何地址实例。
5)SpringIOC集装箱的作用是什么?
IOC容器负责:
- 创建实例
- 配置实例, 并
- 组装依赖
更多细节…
6)Spring的IOC容器有哪些类型?
Spring框架中有两种类型的IOC容器。
- 豆工厂
- ApplicationContext
更多细节…
7)BeanFactory和ApplicationContext有什么区别?
BeanFactory是基本容器, 而ApplicationContext是高级容器。 ApplicationContext扩展了BeanFactory接口。与BeanFactory相比, ApplicationContext提供了更多功能, 例如与spring AOP集成, 用于i18n的消息资源处理等。
8)构造函数注入和setter注入之间有什么区别?
No. | 构造函数注入 | Setter Injection |
---|---|---|
无局部注入 | Partial Injection | |
请勿覆盖setter属性 | 如果定义了构造函数, 则重写它们。 | |
如果发生任何修改, 则创建新实例 | 如果更改属性值, 则不会创建新实例 | |
对于太多的属性更好 | 对一些属性更好。 |
更多细节…
9)春天的自动接线是什么?什么是自动装配模式?
自动装配使程序员能够自动注入Bean。我们不需要编写显式的注入逻辑。
让我们看看使用依赖注入来注入bean的代码。
<bean id="emp" class="com.srcmini.Employee" autowire="byName" />
自动装配模式如下:
No. | Mode | Description |
---|---|---|
no | 这是默认模式, 这意味着未启用自动装配。 | |
byName | 根据属性名称注入bean。它使用setter方法。 | |
byType | 根据属性类型注入bean。它使用setter方法。 | |
constructor | 它使用构造函数注入bean |
从Spring3开始, 不建议使用”自动检测”模式。
10)Spring的bean作用范围是什么?
Spring框架中有5个bean作用域。
No. | Scope | Description |
---|---|---|
singleton | Bean实例将只有一次, 并且IOC容器将返回相同的实例。这是默认范围。 | |
prototype | 每次被请求时都会创建bean实例。 | |
request | Bean实例将根据HTTP请求创建。 | |
session | Bean实例将在每个HTTP会话中创建。 | |
globalsession | Bean实例将在HTTP全局会话中创建。它只能在portlet上下文中使用。 |
11)在哪种情况下, 你将使用单例和原型作用域?
Singleton范围应与EJB无状态会话Bean一起使用, 原型范围应与EJB有状态会话Bean一起使用。
12)Spring提供了哪些交易管理支持?
Spring框架提供了两种类型的事务管理支持:
- 程序化交易管理:应用于少量交易操作。
- 声明式事务管理:应用于许多事务操作。
»Spring JDBC面试问题
13)在Spring, JdbcTemplate有什么优势?
更少的代码:通过使用JdbcTemplate类, 你无需创建连接, 语句, 启动事务, 提交事务和关闭连接即可执行不同的查询。你可以直接执行查询。
更多细节…
14)Spring JDBC API的类是什么?
- Jdbc模板
- SimpleJdbcTemplate
- NamedParameterJdbcTemplate
- SimpleJdbcInsert
- SimpleJdbcCall
更多细节…
15)如何通过Spring JdbcTemplate获取记录?
你可以通过JdbcTemplate的查询方法从数据库中获取记录。有两个接口可以做到这一点:
- ResultSetExtractor
- 的RowMapper
16)NamedParameterJdbcTemplate的优点是什么?
NamedParameterJdbcTemplate类用于将值传递给命名参数。命名参数胜于? (PreparedStatement的问号)。
最好记住。
更多细节…
17)SimpleJdbcTemplate的优点是什么?
SimpleJdbcTemplate支持var-args和自动装箱功能。
更多细节…
»Spring AOP面试问题
18)什么是AOP?
AOP是面向方面编程的首字母缩写。它是一种将程序逻辑分为多个部分或部分或方法的方法。
它增加了模块化, 关键单元是Aspect。
更多细节…
19)spring AOP有什么优点?
AOP使你能够在业务逻辑之前或之后动态添加或删除关注点。它是可插拔的, 易于维护。
更多细节…
20)AOP的术语是什么?
AOP术语或概念如下:
- JoinPoint
- 忠告
- 切入点
- 方面
- 介绍
- 目标对象
- 拦截器
- AOP代理
- 织造
更多细节…
21)什么是JoinPoint?
JoinPoint是程序中的任意点, 例如字段访问, 方法执行, 异常处理等。
22)spring框架是否支持所有的JoinPoints?
不, spring框架仅支持方法执行连接点。
23)什么是建议?
咨询代表按方面采取的行动。
24)AOP中的建议类型是什么?
SpringAOP中有5种建议。
- 咨询前
- 咨询后
- 返回建议后
- 提出建议
- 忠告
25)什么是切入点?
切入点是Spring AOP的表达语言。
26)什么是纵横比?
Aspect是Spring AOP中的一类, 包含建议和连接点。
27)什么是简介?
简介表示对类型的新字段和方法的介绍。
28)什么是目标对象?
目标对象是一个或多个方面建议的代理对象。
29)什么是拦截器?
拦截器是类似类的方面, 仅包含一个建议。
30)编织什么?
编织是将方面与其他应用程序链接的过程。
31)弹簧在编译时是否进行编织?
不, spring框架在运行时执行编织。
32)什么是AOP实施?
有3个AOP实现。
- SpringAOP
- Apache AspectJ
- JBoss AOP
»Spring MVC面试问题
33)Spring MVC的前端控制器类是什么?
DispatcherServlet类在Spring MVC中充当前端控制器。
更多细节…
34)@Controller注释是什么?
@Controller批注将该类标记为控制器类。它应用于班级。
35)@RequestMapping注释是什么?
@RequestMapping批注将请求与方法映射。它应用于该方法。
36)ViewResolver类是什么?
View Resolver类解析要为请求调用的视图组件。它定义了前缀和后缀属性来解析视图组件。
37)哪个ViewResolver类被广泛使用?
org.springframework.web.servlet.view.InternalResourceViewResolver类被广泛使用。
38)Spring MVC是否提供验证支持?
是。
其他面试问题
Java OOP面试问题 |
Java字符串和异常问题 |
JDBC面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
1)
2)
3)
4)
1)
2)
3)
4)
1)
2)
3)
4)
5)
Java基础面试问题
Java多线程问题
Java Collection面试题
Servlet面试问题
Spring面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
评论前必须登录!
注册