在2023年的第一天,迎接新的一年,新的气象,我们再次向大家介绍SpringBoot。相信很多朋友已经在为今年春天的招聘做准备了,所以这篇文章我将和大家分享《35个大公司常见问题+你应该知道的示意图+22个面试基本问题》。 \'我将分享给您,以便您学习和复习!
春靴
01 什么是SpringBoot? 官方描述:Spring Boot是Pivotal团队提供的一个新框架,旨在简化新Spring应用程序的初始构建和开发过程。该框架使用临时方法进行配置,无需开发人员定义样板配置。这样,Spring Boot 旨在成为快速发展的快速应用程序开发领域的领导者。
我们将介绍一个SpringBoot学习路线概览图,供参考和学习。
(注:这只是截图,如果想下载下面分享的高分辨率原图和其他学习路线图,以及完整版SpringBoot面试频率+基础知识,请看后台发送免费获取)私信“春季招聘”!)
Spring Boot百科全书
SpringBoot学习路线示意图
02 35 SpringBoot各大厂商常见问题:Spring Boot、Spring MVC、Spring有什么区别?问题2 什么是自动配置?问题3 什么是Spring Boot Stater?问题4 能否提供一个例子来解释更多的stater问题5:Spring Boot还提供哪些其他入门项目选项?问题6:Spring如何帮助您快速创建生产就绪的应用程序?问题7:创建Spring Boot项目的最简单方法是什么? Initializr是创建Spring Boot项目的唯一方法? 问题9 为什么我需要spring-boot-maven-plugin? 问题10 如何使用SpringBoot 自动重新安装应用程序? 问题11 什么是嵌入式服务器? 为什么要使用嵌入式服务器? 问题12:一般如何向Spring Boot 添加自定义JS 代码?问题13 什么是Spring Data?问题14 什么是Spring Data REST? 问题15 如何在Spring Data Rest 中使用path=”users”、collectionResourceRel=”users”?问题16 当Spring Boot 应用程序作为Java 应用程序运行时,后台会发生什么?问题17:我可以使用Jetty 代替Tomcat问题18:如何使用Spring Boot生成WAR文件?问题19:我可以使用Spring Boot生成WAR文件吗?问题20:RequestMapping和GetMapping有什么区别? 21:为什么不建议在实际应用中使用Spring Data Rest? 问题22:如何在Spring Initializer 中更改项目的包名称?问题23 在哪里可以找到可配置的属性的完整列表?在application.propertierde中?问题24 JPA和Hibernate有什么区别?问题25:业务边界应该在什么级别开始?问题26:使用Spring Boot启动连接到内存数据库H2的JPA应用程序需要哪些依赖项问题27:如何在不进行任何配置的情况下选择Hibernate作为JPA的默认实现? 问题28:在哪里可以找到指定的数据库连接信息? 问题29:如何连接到H2?问题30:Spring Boot 配置的默认H2 数据库名称是什么?问题31 默认数据库名称是testdb 为什么?问题32:如果H2 不在类路径上会发生什么?问题33 :能举个使用ReadOnly作为事务管理的例子吗?问题34:对配置文件有什么要求?问题35:如何通过Spring Boot使用配置文件来配置特定环境的配置?问题1 什么是配置文件? Spring Boot、Spring MVC 和Spring 之间的区别?
SpringSpring最重要的特性是依赖注入。所有SpringModule 要么是依赖注入,要么是IOC 控制反转。
正确使用DI 或IOC 可以让您开发松散耦合的应用程序。轻松运行松散耦合应用程序的单元测试。
Spring MVCSpring MVC 提供了一种开发Web 应用程序的解耦方法。 DispatcherServelet、MoudlAndView 和ViewResolver 等简单概念使开发Web 应用程序变得非常容易。
SpringBootSpring和SpringMVC的问题是需要配置的参数很多。
Spring Boot通过自动配置和启动项目解决了这个问题。为了帮助您更快地构建生产就绪的应用程序,Spring Boot 提供了一些非功能性特性。
问题2:什么是自动配置?
Spring和SpringMVC的问题是需要配置的参数很多。
当MVC JAR 添加到应用程序时,我们可以自动配置一些Bean 吗?
Spring 显示现有应用程序的配置(CLASSPATH 中可用的框架)。基于此,Spring Boot 提供了配置应用程序和框架所需的基本配置。这是自动配置。
问题3 Spring Boot Stater是什么?
启动器是一组方便的依赖描述符,您可以将其放置在自己的程序中。将您需要的所有Spring 及相关技术集中在一处,而无需搜索描述符或复制粘贴示例代码。
例如,如果您想使用Spring 和JPA 访问数据库,只需在项目中包含spring-boot-starter-data-jpa 依赖项即可。
问题4:能否举个例子详细解释一下定子?
Stater - 考虑Spring Boot Stater Web 示例。
如果您正在开发Web 应用程序或公开REST 服务的应用程序。推荐Spring Boot启动Web。让我们使用Spring Initializr 创建一个简单的Spring Boot Start Web 项目。
Spring Boot启动Web依赖
下面的屏幕截图显示了添加到应用程序的各种依赖项。
依赖关系可以分类为:
Spring - 核心、Bean、上下文、AOP
Web MVC -(Spring MVC)
Jackson - 用于JSON 绑定
验证- Hibernate、验证API
嵌入式servlet容器-Tomcat
日志记录- logback、slf4j
所有传统的Web 应用程序都使用所有这些依赖项。 Spring Boot Starter Web 预先打包了这些依赖项。
作为开发人员,您不再需要担心这些依赖项及其兼容版本。
问题5:Spring Boot 还提供哪些其他入门项目选项?
Spring Boot 还提供了其他入门项目,其中包含用于开发特定类型应用程序的常见依赖项。
spring-boot-starter-web-services - SOAP Web 服务。
spring-boot-starter-web - Web 和RESTful 应用程序。
spring-boot-starter-test - 单元和集成测试。
spring-boot-starter-jdbc - 经典JDBC。
spring-boot-starter-hateoas - 将HATEOAS 功能添加到您的服务中。
spring-boot-starter-security - 使用SpringSecurity 进行身份验证和授权。
spring-boot-starter-data-jpa - 使用Hibeernate 的Spring Data JPA.
spring-boot-starter-data-rest - 使用Spring Data REST 公开一个简单的REST 服务.
由于篇幅有限,现将SpringBoot厂商最常见的35个完整问题整理成Word文档(含详细解答)如下所示。
SpringBoot主要厂商的35个常见问题(含分析)
03 SpringBoot 面试基础问题22 问题1 什么是Spring Boot?问题2 Spring Boot 有什么好处?问题3 什么是JavaConfig?问题4 无需重启服务器即可更改Spring Boot 问题5:Spring Boot 中的监视器是什么?问题6 如何在Spring Boot 中禁用Actuator 端点安全性? 问题7:如何在Spring Boot 中禁用Actuator 端点安全性?如何在自定义端口上运行它?问题8 什么是YAML?问题9:如何实现我的Spring Boot 应用程序的安全性?问题10 如何将Spring Boot 与ActiveMQ 集成?我该怎么做?问题11 如何使用Spring Boot 实现分页和排序?问题12 什么是Swagger?问题13 Spring Profile 问题14 什么是Spring Batch? 问题15 什么是FreeMarker 模板? 问题16:如何使用Spring Boot 实现异常处理? 问题17 您使用了哪种启动器Maven 依赖项? CSRF 攻击?问题19 什么是WebSocket?问题20 什么是AOP?问题21 什么是Apache Kafka?问题22:如何监控所有Spring Boot 微服务?问题1 什么是Spring Boot?
多年来,随着新功能的添加,Spring 变得越来越复杂。请访问https://spring.io/projects 页面,查看可在应用程序中使用的所有Spring 项目的各种功能。如果需要启动一个新的Spring项目,则需要添加构建路径或Maven依赖项,配置应用服务器,并添加Spring配置。因此,开始一个新的Spring 项目需要付出很大的努力,因为一切都必须从头开始。
Spring Boot 就是解决这个问题的。 Spring Boot 构建在现有Spring 框架之上。 Spring Boot 允许您避免以前必须执行的所有样板代码和配置。因此,Spring Boot 可以帮助您以最小的努力更健壮地使用现有的Spring 功能。
问题2 Spring Boot有什么好处?
Spring Boot 的好处是:
减少开发和测试时间和精力。 JavaConfig 允许您避免使用XML。避免大量Maven导入和不同版本之间的冲突。提供开发方法思路。通过提供默认值快速开始开发。不需要单独的网络服务器。这意味着您不再需要启动Tomcat、Glassfish 或其他任何东西。没有web.xml 文件,因此需要的配置较少。只需添加一个用@Configuration注解的类,然后添加一个用@Bean注解的方法,Spring就会像以前一样自动加载对象并管理它们。您还可以将@Autowired 添加到您的bean 方法中,以使Spring 自动加载所需的依赖项。基于环境的配置这些属性允许您将正在使用的环境传递给应用程序:-Dspring.profiles.active={enviornment}。加载主应用程序属性文件后,Spring 将后续应用程序属性文件加载到(application{environment}.properties) 中。 问题3:什么是JavaConfig?
Spring JavaConfig 是Spring 社区的产品,提供了一种纯粹的方式来配置Spring IoC 容器。
Java方法。因此,它可以帮助您避免使用XML 配置。使用JavaConfig的好处是:
1.面向对象的配置。配置在JavaConfig中被定义为类,允许用户充分利用Java的面向对象的特性。一个配置类可以继承另一个配置类或重写其@Bean方法。
2.减少或删除XML配置。基于依赖注入原理的外部化配置的好处已经被证明。然而,许多开发人员不想在XML 和Java 之间来回切换。 JavaConfig为开发人员提供了一种纯Java方式来配置Spring容器,类似于XML配置概念。从技术角度来看,仅使用JavaConfig 配置类来配置容器是可能的,但在实践中许多人认为混合和匹配JavaConfig 和XML 是理想的。
3. 类型安全和重构友好。 JavaConfig 提供了一种类型安全的方式来配置Spring 容器。由于Java 5.0 对泛型的支持,您现在可以按类型而不是名称检索bean,而无需进行强制转换或基于字符串的查找。
问题4:如何在不重新启动服务器的情况下重新加载Spring Boot中的更改?这可以使用DEV工具来实现。通过此依赖项,当您保存更改时,嵌入式Tomcat 将重新启动。 Spring Boot 具有DevTools 模块,可帮助提高开发人员的工作效率。 Java 开发人员面临的一大挑战是自动将文件更改部署到服务器并自动重新启动服务器。开发人员可以使用Spring Boot 重新加载更改,而无需重新启动服务器。这消除了每次手动部署更改的需要。当Spring Boot第一个版本发布时,这个功能还不存在。这是开发人员最需要的功能。 DevTools模块充分满足开发人员的需求。该模块在生产环境中将被禁用。它还提供H2 数据库控制台来改进应用程序测试。
org.springframework.bootspring-boot-devtoolstrue 问题5 Spring Boot 中的监视器是什么?
Spring Boot 执行器是Spring Startup 框架的关键功能之一。 Spring Boot 监视器可帮助您访问生产中运行的应用程序的当前状态。在生产环境中,有几个指标需要检查和监控。一些外部应用程序也可能使用这些服务来向感兴趣的各方触发警报消息。监控模块公开了一组REST 端点,可以直接作为HTTP URL 访问以检查状态。
22道基础SpringBoot面试题的完整版也整理在如下Word文档中:(含解析)
完成22 个基本SpringBoot 面试问题
最后我们总结一下SpringBoot百科
除了上面分享的SpringBoot百科,我们还有一些Spring全家桶学习笔记。 Spring+SpringBoot+SpringMVC+SpringCloud将免费分享给大家,为Spring采用做准备。请注意如何免费获得它。
Go+Go+Go+私信《春季招聘》!免费获取!
Spring全家桶研究笔记:Spring+SpringBoot+SpringMVC+SpringCloud