征集二级网站建设意见 通知,个人域名可以做企业网站吗,网站建设基础服务,公司logo如何注册目录 引言一、面试题导航二、面试题目1.什么是SpringBoot#xff1f;2.谈谈你对SpringBoot的理解#xff1f;3.为什么需要SpringBoot#xff1f;4.SpringBoot的配置文件有哪几种格式#xff1f;5.SpringBoot支持哪些日志框架#xff1f;推荐和默认的日志框架是哪个#x… 目录 引言一、面试题导航二、面试题目1.什么是SpringBoot2.谈谈你对SpringBoot的理解3.为什么需要SpringBoot4.SpringBoot的配置文件有哪几种格式5.SpringBoot支持哪些日志框架推荐和默认的日志框架是哪个6.什么是YAML?7.SpringBoot支持哪些嵌入式Web容器8.SpringBoot需要独立的容器运行吗9.你如何理解SpringBoot配置加载顺序10.SpringBoot可以兼容老Spring项目吗11.说出SpringBoot的优点12.如何在自定义端口上运行SpringBoot应用程序13.如何重新加载SpringBoot上的更改而无需重新启动服务器14.如何使用SpringBoot实现异常处理15.SpringBoot与SpringCloud区别16.SpringBoot支持什么前端模板17.开启SpringBoot特性有哪几种方式18.SpringBoot中Async异步调用方法19.比较一下Spring Security和Shiro各自的优缺点20.SpringBoot事务的使用21.SpringBoot自动配置原理是什么22.SpringBoot的核心注解是哪个?它主要由哪几个注解组成的23.spring-boot-starter-parent有什么用24.SpringBoot、SpringMVC和Spring有什么区别25.SpringBoot中如何解决跨域问题26.为什么我们需要spring-boot-maven-plugin27.SpringBoot配置加载可以通过哪些方式定义 引言
面试题知识点这里所记录的面试题并不针对于面试者而是将这些面试题作为技能知识点来看待。不以刷题进大厂为目的而是以学习为目的。这里的知识点会持续更新目录也会随时进行调整。 大家可以关注公众号【编程火箭车】可以在文章最下方扫码关注。在【粉丝福利】中点击【面题大全】其中的Java面试题在线实时更新、查看。 一、面试题导航
点这里进入JavaWeb编程面试题——导航
面试题持续更新中…
二、面试题目
1.什么是SpringBoot
SpringBoot 是 Spring 开源组织下的子项目是 Spring 组件一站式解决方案主要是简化了使用 Spring 的难度简省了繁重的配置提供了各种启动器使开发者能快速上手。
2.谈谈你对SpringBoot的理解
SpringBoot 主要用来简化使用 Spring 的难度和繁重的 XML 配置它是 Spring 组件的一站式解决方案采取了习惯优于配置的方法。通过 .properties 或者 .yml 文件替代了 Spring 繁杂的 XML 配置文件同时支持 ImportResource 注解加载 XML 配置。SpringBoot 还提供了嵌入式 HTTP 服务器、命令行接口工具、多种插件等等使得应用程序的测试和开发简单起来。
3.为什么需要SpringBoot
SpringBoot 优点非常多如独立运行、简化配置、自动配置和无需部署 war 文件等等。
4.SpringBoot的配置文件有哪几种格式
主要有 .properties 和 .yml 格式它们的区别主要是书写格式不同。另外 .yml 格式不支持 PropertySource 注解导入配置。
5.SpringBoot支持哪些日志框架推荐和默认的日志框架是哪个
SpringBoot 支持 Java Util LoggingLog4j2Logback 作为日志框架。如果使用 Starters 启动器SpringBoot 将使用 Logback 作为默认日志框架推荐的日志框架是 Log4j2。但是不管是那种日志框架他都支持将配置文件输出到控制台或者文件中。
6.什么是YAML?
YAML 是一种可读的数据序列化语言它通常用于配置文件。与属性文件相比如果我们想要在配置文件中添加复杂的属性YAML 文件就更加结构化而且更少混淆。可以看出 YAML 具有分层配置数据。
7.SpringBoot支持哪些嵌入式Web容器
SpringBoot 支持的嵌入式 servlet 容器有Tomcat、Jetty、Undertow。
8.SpringBoot需要独立的容器运行吗
可以不需要内置了 Tomcat/Jetty 等容器。
9.你如何理解SpringBoot配置加载顺序
SpringBoot 配置加载顺序优先级是properties 文件、YAML 文件、系统环境变量、命令行参数。
10.SpringBoot可以兼容老Spring项目吗
可以兼容使用 ImportResource 注解导入老 Spring 项目配置文件。
11.说出SpringBoot的优点
简化开发提高整体生产力。SpringBoot 使用 JavaConfig 有助于避免使用 XML同时避免大量的 Maven 导入和各种版本冲突。SpringBoot 引导的应用程序可以很容易地与 Spring 生态系统集成如Spring JDBC、Spring ORM、Spring Data、Spring Security 等等。SpringBoot 应用程序提供嵌入式 HTTP 服务器如 Tomcat 和 Jetty可以轻松地开发和测试 Web 应用程序。SpringBoot 提供命令行接口工具用于开发和测试应用程序。SpringBoot 提供了多种插件可以使用内置 Maven 工具开发和测试应用程序。SpringBoot 没有单独的 Web 服务器需要这意味着不再需要启动 Tomcat 或其他任何东西。
12.如何在自定义端口上运行SpringBoot应用程序
可以在 application.properties 配置文件中指定端口比如 server.port8090
13.如何重新加载SpringBoot上的更改而无需重新启动服务器
这可以使用 DEV 工具来实现。通过这种依赖关系您可以节省任何更改嵌入式 Tomcat 将重新启动。SpringBoot 有一个开发工具 DevTools 模块它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 SpringBoot 上的更改而无需重新启动服务器。这将消除每次手动部署更改的需要。SpringBoot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。 DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用程序。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional
/dependency14.如何使用SpringBoot实现异常处理
Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。我们通过实现一个 ControlerAdvice 类来处理控制器类抛出的所有异常。
15.SpringBoot与SpringCloud区别
SpringBoot 是快速开发的 Spring 框架SpringCloud 是完整的微服务框架SpringCloud 依赖于 SpringBoot。
16.SpringBoot支持什么前端模板
thymeleaf、freemarker 和 jsp官方不推荐 jsp 会有限制。
17.开启SpringBoot特性有哪几种方式
继承 spring-boot-starter-parent 项目导入 spring-boot-dependencies 项目依赖
18.SpringBoot中Async异步调用方法
在 SpringBoot 中使用异步调用是很简单的只需要在方法上使用 Async 注解即可实现方法的异步调用。 **注意**需要在启动类加入 EnableAsync 使异步调用 Async 注解生效。
19.比较一下Spring Security和Shiro各自的优缺点
由于 SpringBoot 官方提供了大量的非常方便的开箱即用的 Starter包括 Spring Security 的 Starter使得在 SpringBoot 中使用 Spring Security 变得更加容易甚至只需要添加一个依赖就可以保护所有的接口所以如果是 SpringBoot 项目一般选择 Spring Security。当然这只是一个建议的组合单纯从技术上来说无论怎么组合都是没有问题的。Shiro 和 Spring Security 相比主要有如下一些特点
Spring Security 是一个重量级的安全管理框架Shiro 则是一个轻量级的安全管理框架Spring Security 概念复杂配置繁琐Shiro 概念简单、配置简单Spring Security 功能强大Shiro 功能简单
20.SpringBoot事务的使用
SpringBoot 的事务很简单首先使用注解 EnableTransactionManagement 开启事务之后然后在 Service 方法上添加注解 Transactional 便可。
21.SpringBoot自动配置原理是什么
SpringBoot 项目的启动注解是SpringBootApplication其实它就是由下面三个注解组成的
ConfigurationComponentScanEnableAutoConfiguration
其中 EnableAutoConfiguration 是实现自动配置的入口该注解又通过 Import 注解导入了AutoConfigurationImportSelector在该类中加载 META-INF/spring.factories 的配置信息。然后筛选出以 EnableAutoConfiguration 为 key 的数据加载到 IOC 容器中实现自动配置功能。
22.SpringBoot的核心注解是哪个?它主要由哪几个注解组成的
启动类上面的注解是 SpringBootApplication它也是 SpringBoot 的核心注解主要组合包含了以下3个注解
SpringBootConfiguration组合了 Configuration 注解实现配置文件的功能。EnableAutoConfiguration打开自动配置的功能也可以关闭某个自动配置的选项如关闭数据源自动配置功能SpringBootApplication(exclude{DataSourceAutoConfiguration.class})ComponentScanSpring 组件扫描。
23.spring-boot-starter-parent有什么用
新创建一个 SpringBoot 项目默认都是有 parent 的这个 parent 就是 spring-boot-starter-parentspring-boot-starter-parent 主要有如下作用
定义了 Java 编译版本为1.8。使用 UTF-8 格式编码。继承自 spring-boot-dependencies这个里边定义了依赖的版本也正是因为继承了这个依赖所以我们在写依赖时才不需要写版本号。执行打包操作的配置。自动化的资源过滤。自动化的插件配置。针对 application.properties 和 application.yml 的资源过滤包括通过 profile 定义的不同环境的配置文件例如 application-dev.properties 和 application-dev.yml。
总结就是打包用的。
24.SpringBoot、SpringMVC和Spring有什么区别
Spring 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。当我们恰当的使用 DI 或者是 IOC 的时候我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。SpringMVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServletMoudlAndView 和 ViewResolver 等一些简单的概念开发 Web 应用将会变的非常简单。Spring 和 SpringMVC 的问题在于需要配置大量的参数。
SpringBoot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序SpringBoot 提供了一些非功能性特征。
25.SpringBoot中如何解决跨域问题
跨域可以在前端通过 JSONP 来解决但是 JSONP 只可以发送 GET 请求无法发送其他类型的请求在 RESTful 风格的应用中就显得非常鸡肋因此我们推荐在后端通过 (CORSCross-origin resource sharing) 来解决跨域问题。这种解决方案并非 Spring Boot 特有的在传统的 SSM 框架中就可以通过 CORS 来解决跨域问题只不过之前我们是在 XML 文件中配置 CORS现在可以通过实现 WebMvcConfigurer 接口然后重写 addCorsMappings 方法解决跨域问题。
26.为什么我们需要spring-boot-maven-plugin
spring-boot-maven-plugin 提供了一些像 jar 一样打包或者运行应用程序的命令。
spring-boot:run 运行你的 SpringBoot 应用程序。spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可执行。spring-boot:start / spring-boot:stop 管理 SpringBoot 应用程序的生命周期也可以说是为了集成测试。spring-boot:build-info 生成执行器可以使用的构造信息。
27.SpringBoot配置加载可以通过哪些方式定义
propertiest文件命令行参数YAML文件系统环境变量