📜  Spring面试问题

📅  最后修改于: 2020-12-06 03:47:30             🧑  作者: Mango

Spring面试问题

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. Constructor Injection Setter Injection
1) No Partial Injection Partial Injection
2) Desn’t override the setter property Overrides the constructor property if both are defined.
3) Creates new instance if any modification occurs Doesn’t create new instance if you change the property value
4) Better for too many properties Better for few properties.

9)什么是Spring自动接线?什么是自动装配模式?

自动装配使程序员能够自动注入Bean。我们不需要编写显式的注入逻辑。

让我们看看使用依赖注入来注入bean的代码。


自动装配模式如下:

No. Mode Description
1) no this is the default mode, it means autowiring is not enabled.
2) byName injects the bean based on the property name. It uses setter method.
3) byType injects the bean based on the property type. It uses setter method.
4) constructor It injects the bean using constructor

从弹簧3开始,不建议使用“自动检测”模式。

10)Spring的bean作用域有哪些?

Spring框架中有5个bean作用域。

No. Scope Description
1) singleton The bean instance will be only once and same instance will be returned by the IOC container. It is the default scope.
2) prototype The bean instance will be created each time when requested.
3) request The bean instance will be created per HTTP request.
4) session The bean instance will be created per HTTP session.
5) globalsession The bean instance will be created per HTTP global session. It can be used in portlet context only.

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的查询方法从数据库中获取记录。有两个接口可以做到这一点:

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是否提供验证支持?

是。

其他面试问题