慕了慕了!有的Java程序员工作3年才8k,有的工作半年已经拿了25k

前言

群里的一个小伙伴,工作半年就拿到了25k的offer,真是慕了慕了。
在这里插入图片描述
现在的朋友,真的是一个比一个凡尔赛,虽然我很菜,但是我月薪25k。。。
当然这位小伙伴能拿到了25k的月薪,靠的肯定是他私下的努力,在小编的追问下,小伙伴跟我分享了他的学习资料和遇到的spring面试题,小编这里给大家分享一下,希望可以对大家有所帮助。

spring面试题

1、什么是spring?

Spring本质上是一个轻量级的集成框架,可用于用Java开发企业应用程序。

2、命名Spring框架的不同模块

一些重要的Spring Framework模块是:

  • Spring Context –用于依赖注入
  • Spring AOP –用于面向方面的编程
  • Spring DAO –使用DAO模式进行数据库操作
  • Spring JDBC –用于JDBC和DataSource支持
  • Spring ORM –对ORM工具的支持,例如Hibernate
  • Spring Web Module –用于创建Web应用程序
  • Spring MVC –用于创建Web应用程序,Web服务等的Model-View-Controller实现

3、列出基于注释的Spring配置中的一些重要注释

重要的注释是:

  • @Required
  • @Autowired
  • @Qualifier
  • @Resource
  • @PostConstruct
  • @PreDestroy

4、在Spring中解释Bean并列出Spring Bean的不同范围

Bean是构成Spring应用程序主干的对象。它们由Spring IoC容器管理。换句话说,bean是一个由Spring IoC容器实例化,组装和管理的对象。

Spring bean中定义了五个范围。
在这里插入图片描述

Singleton: 将为每个容器创建一个bean实例。这是spring bean的默认范围。在使用此范围时,请确保spring bean没有共享的实例变量,否则可能会导致数据不一致问题,因为它不是线程安全的
原型: 每次请求bean时都会创建一个新实例
请求: 这与原型范围相同,但是应用于Web应用程序。将为每个HTTP请求创建一个新的bean实例
会话: 容器将为每个HTTP会话创建一个新bean
Global-session: 这用于为Portlet应用程序创建全局会话Bean

5、解释DispatcherServlet和ContextLoaderListener的角色

DispatcherServlet基本上是Spring MVC应用程序中的前端控制器,因为它加载了Spring bean配置文件并初始化所有已配置的bean。如果启用了注释,它还将扫描软件包以配置任何使用@ Component,@ Controller,@ Repository或@Service注释进行注释的bean。

另一方面,ContextLoaderListener是在Spring根目录中启动和关闭WebApplicationContext的侦听器。它的一些重要功能包括将Application Context的生命周期与ServletContext的生命周期绑定在一起,并自动创建ApplicationContext。
在这里插入图片描述

6、构造函数注入和setter注入之间有什么区别?

在这里插入图片描述

7、spring的自动注入模式是什么?什么是自动装配模式?

自动装配使程序员能够自动注入Bean。我们不需要编写显式的注入逻辑。 让我们看看使用依赖注入来注入bean的代码。

`` 

*   1

自动装配模式如下:
在这里插入图片描述

8、如何在Spring MVC Framework中处理异常?

Spring MVC Framework提供了以下方法来帮助我们实现可靠的异常处理。

基于控制器:
我们可以在控制器类中定义异常处理程序方法。我们所需要做的就是使用@ExceptionHandler注释对这些方法进行注释。

全局异常处理程序:
异常处理是一个跨领域的问题,Spring提供了@ControllerAdvice批注,我们可以将其与任何类一起使用来定义全局异常处理程序。

HandlerExceptionResolver实现:
对于一般的异常,大多数时候我们提供静态页面。Spring Framework提供了HandlerExceptionResolver接口,我们可以通过该接口来创建全局异常处理程序。这种定义全局异常处理程序的其他方法背后的原因是,Spring框架还提供了默认实现类,我们可以在我们的Spring bean配置文件中定义这些默认实现类,以获得Spring框架异常处理的好处。

9、您使用了哪些重要的Spring批注?

我在项目中使用的一些Spring注释是:

@Controller –用于Spring MVC项目中的控制器类。

@RequestMapping –用于在控制器处理程序方法中配置URI映射。这是一个非常重要的注释,因此您应该阅读Spring MVC RequestMapping注释示例

@ResponseBody –用于发送对象作为响应,通常用于发送XML或JSON数据作为响应。

@PathVariable –用于将动态值从URI映射到处理程序方法参数。

@Autowired –用于自动装配Spring bean中的依赖项。

@Qualifier –带有@Autowired注释,以避免在存在多个bean类型的实例时造成混淆。

@Service –用于服务类。

@Scope –用于配置Spring bean的范围。

@ Configuration,@ ComponentScan和@Bean –用于基于Java的配置。

AspectJ注释,用于配置方面和建议,@ Aspect,@ Before,@ After,@ Around,@ Pointcut等。

10、如何集成Spring和Hibernate框架?

如果您使用的是SessionFactory提供当前会话的Hibernate 3+,那么我们可以使用Spring ORM模块来集成Spring和Hibernate框架,那么您应该避免使用HibernateTemplate或HibernateDaoSupport类,而最好使用带有依赖项注入的DAO模式进行集成。

另外,Spring ORM还提供了对使用Spring声明式事务管理的支持,因此您应该利用它,而不是使用休眠的样板代码进行事务管理。

11、命名Spring支持的事务管理的类型

Spring支持两种类型的事务管理。他们是:

程序化事务管理: 在这种情况下,借助编程来管理事务。它为您提供了极大的灵活性,但是很难维护。
声明式事务管理: 在此,事务管理与业务代码分开。仅注释或基于XML的配置用于管理事务。

你可能感兴趣的:(程序员,java,java-se,编程,后端)