**1\. 什么是SpringBoot?**
SpringBoot是 Spring 开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
**2\. SpringBoot有哪些优点?**
* 减少开发,减少测试时间。
* 使用JavaConfig有助于避免使用XML。
* 避免大量的Maven导入和各种版本冲突。
* 提供意见发展方法。
* 通过提供默认值快速开始开发。
* 没有单独的Web服务器需要。这意味着你不再需要启动Tomcat,Glassfish或其他任何东西。
* 需要更少的配置 因为没有web.xml文件。只需添加用@ Configuration注释的类,然后添加用@Bean注释的方法,Spring将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired添加到bean方法中,以使Spring自动装入需要的依赖关系中。
基于环境的配置 使用这些属性,您可以将您正在使用的环境传递到应用程序:
-Dspring.profiles.active = {enviornment}。
在加载主应用程序属性文件后,Spring将在 (application{environment} .properties)中加载后续的应用程序属性文件。
**3.SpringBoot的核心配置文件有哪几个?他们的区别是什么呢?**
* Spring Boot的核心配置文件是application 和 bootstrap 配置文件。
* application 配置文件这个容易理解,主要是用于 Spring Boot 项目的自动化配置。
* bootstrap 配置文件有以下几个应用场景:
* 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
* 一些固定的不能被覆盖的属性;
* 一些加密/解密的场景出现
**4.SpringBoot的配置文件有哪几种格式?他们有什么区别吗?**
.properties 和 .yml,它们的区别主要是书写格式不同。1.properties
app.user.name = javastack
2.yml
app: user: name: javastack
**5\. SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?**
启动类上面的注解是@SpringBootApplication,它也是SpringBoot的核心注解 主要组合包含了以下 3 个注解:
* @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
* @EnableAutoConfiguration:打开自动配置的功能, 也可以关闭某个自动配置的选项,比如关闭数据源自动配置功能:
* @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
* @ComponentScan:Spring组件扫描。
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
**6.开启SpringBoot特性有哪几种方式?**
* 继承spring-boot-starter-parent项目
* 2.导入spring-boot-dependencies项目依赖
**7\. SpringBoot需要独立的容器运行吗?**
可以不需要,内置了 Tomcat/ Jetty 等容器。
**8\. 运行SpringBoot 有哪几种方式?**
* 打包用命令或者放到容器中运行
* 用 Maven/ Gradle 插件运行
* 直接执行 main 方法运行
**9\. SpringBoot 自动配置原理是什么?**
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
**10\. SpringBoot 2.X 有什么新特性?**
* 配置变更
* JDK 版本升级
* 第三方库升级
* 响应式 Spring 编程支持
* HTTP/2 支持
* 配置属性绑定
* 更多的改进与加强…
**11\. 如何使用SpringBoot实现分页和排序?**
使用Spring Boot实现分页非常简单。使用Spring Data-JPA可以实现,将可分页的 org.springframework.data.domain.Pageable 传递给存储库的方法。
**12\. 如何实现SpringBoot 应用程序的安全性?**
为了实现Spring Boot的安全性,我们使用 spring-boot-starter-security依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。
**13\. 如何集成SpringBoot 和 ActiveMQ**
对于集成Spring Boot和ActiveMQ,我们使用spring-boot-starter-activemq 依赖关系。它只需要很少的配置,并且不需要样板代码。
**14\. 什么是YAML?**
* YAML是一种人类可读的数据序列化语言。
* 它通常用于配置文件。
* 与属性文件相比,如果我们想要在配置文件中添加复杂的属性,
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
* YAML文件更加结构化,而且更少混淆。可以看出YAML具有分层配置数据。
**15\. SpringBoot 中的监视器是什么呢?**
* Spring boot actuator是spring启动框架中的重要功能之一。
* Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。
* 有几个指标必须在生产环境中进行检查和监控。
* 即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。
* 监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。
**16\. 什么是Swagger?你用SpringBoot实现了它吗?**
Swagger广泛用于可视化API,使用Swagger UI为前端开发人员提供在线沙箱。
Swagger是用于生成RESTful Web服务的可视化表示的工具,规范和完整框架实现。
它使文档能够以与服务器相同的速度更新。
当通过Swagger正确定义时,消费者可以使用最少量的实现逻辑来理解远程服务并与其进行交互。
因此,Swagger消除了调用服务时的猜测。
**17\. 如何使用SpringBoot实现异常处理?**
Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。
我们通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常。
**18\. RequestMapping和GetMapping的不同之处在哪里?**
RequestMapping 具有类属性的,可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法。
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
GetMapping 是 GET 请求方法中的一个特例。
它只是 ResquestMapping 的一个延伸,目的是为了提高清晰度。
**1919\. SpringBoot可以兼容老Spring项目吗?如何做?**
可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。
**20\. 保护SpringBoot应用有哪些方法?**
* 在生产中使用HTTPS 使用Snyk检查你的依赖关系
* 升级到最新版本
* 启用CSRF保护
* 使用内容安全策略防止XSS攻击
**21\. SpringBoot打成的jar和普通jar有什么区别?**
Spring Boot 项目最终打包成的 jar 是可执行 jar ,这种 jar 可以直接通过 java -jar xxx.jar 命令来运行,这种 jar 不可以作为普通的 jar 被其他项目依赖,即使依赖了也无法使用其中的类。
Spring Boot 的 jar 无法被其他项目依赖,主要还是他和普通 jar 的结构不同。
普通的 jar 包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,因此无法被直接引用。
如果非要引用,可以在 pom.xml 文件中增加配置,将 Spring Boot 项目打包成两个 jar ,一个可执行,一个可引用。
**22\. SpringBoot中如何实现定时任务?**
定时任务也是一个常见的需求,Spring Boot 中对于定时任务的支持主要还是来自 Spring 框架。
在 Spring Boot 中使用定时任务主要有两种不同的方式,
* 一个就是使用 Spring 中的 @Scheduled 注解,
* 另一个则是使用第三方框架 Quartz。
使用 Spring 中的 @Scheduled 的方式主要通过 @Scheduled 注解来实现。
使用 Quartz ,则按照 Quartz 的方式,定义 Job 和 Trigger 即可。
Java架构师入门到精通:➡([Java进阶面试福利资料])⬅点击领取
原网址: 访问
创建于: 2022-10-13 09:41:52
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论