Java面试准备-SpringBoot

简介: Java面试准备-SpringBoot

为什么要用SpringBoot


独立运行:SpringBoot内嵌了Servlet容器,如Tomcat、Jetty等,现在不需要打成War包再丢到容器里面进行运行,SpringBoot只需要打成一个Jar包,所有的依赖包都在这个里面,可以同构命令直接运行。

简化配置:spring-boot-starter-web 启动器自动依赖其他组件,减少maven配置。

自动配置:SpringBoot能够根据当前类路径下的类、jar包来自动配置Bean

无代码生成和XML配置:SpringBoot配置过程中无需代码生成、也不需要配置相关的XML,这一切都是基于条件注解来完成的。

应用监控:SpringBoot 提供一些列端点可以监控服务及应用,做健康检查。


SpringBoot核心注解是哪些,是由什么组成的


启动类上面有 @SpringBootApplication ,包含一下三个注解

@SpringBootConfiguration ,组合了@Configuration,实现配置文件功能

@EnableAutoConfiguration ,打开自动配置注解,可以关闭某些源,如 DataSource。

@ComponentScan,Spring组件扫描。


运行Spring Boot有哪几种方式?


打包用命令或者放到容器中执行

用Maven、Gradle 插件云行

直接执行Main方法云行


如何理解SpringBoot当中的starters


starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,如果你想集成JPA,只要加入spring-boot-starter-data-jpa 启动器依赖就可以了,starter里面包含了许多其他依赖,它们能够快速持续的云行,都是一些管理传递依赖。

SpringBoot官方命名:以spring-boot-starter-XXX

非官方命名:XX-spring-boot-starter


如何在SpringBoot启动的时候运行一些特定代码


需要实现接口 ApplicationRunner


SpringBoot需要独立的容器运行吗


可以不需要,内置Tomcat、Jetty等容器

如何使用SpringBoot实现热部署

Spring Loaded

Spring-Boot-Devtools


如何理解SpringBoot配置加载顺序的


properties文件

yml文件

系统环境变量

命令参数


SpringBoot 核心配置有哪些


核心配置就是 application 和 bootstrap 配置文件

application 主要用于SpringBoot自动配置

bootstrap有一下一些应用场景

使用配置中心时,这个时候需要在bootstrap配置配置中心地址等参数

一些固定不能被覆盖的属性

一些加密解密的场景


SpringBoot 如何实现自动装配的


Starter做为基础,比如我们添加一个 spring-boot-starter-data-redis ,就可以进行使用,这就是SpringBoot的自动装配机制。

我们没用通过XML或者注解的形式把 RedisTemplate 注入到IOC容器当中去,但是依然可以进行使用。

@SpringBootApplication 下面的三个注解:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

@EnableAutoConfiguration -> @AutoConfigurationPackage -> ImportSelector 来实现批量自动装配

@ConfigurationProperties 会把配置文件读取到 ServerProperties 中。

相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
87 2
|
12天前
|
Java 数据库连接 Maven
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
自动装配是现在面试中常考的一道面试题。本文基于最新的 SpringBoot 3.3.3 版本的源码来分析自动装配的原理,并在文未说明了SpringBoot2和SpringBoot3的自动装配源码中区别,以及面试回答的拿分核心话术。
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
|
12天前
|
Java 数据库连接 Maven
最新版 | SpringBoot3如何自定义starter(面试常考)
在Spring Boot中,starter是一种特殊的依赖,帮助开发人员快速引入和配置特定功能模块。自定义starter可以封装一组特定功能的依赖和配置,简化项目中的功能引入。其主要优点包括模块化、简化配置、提高代码复用性和实现特定功能。常见的应用场景有短信发送模块、AOP日志切面、分布式ID生成等。通过创建autoconfigure和starter两个Maven工程,并编写自动配置类及必要的配置文件,可以实现一个自定义starter。最后在测试项目中验证其有效性。这种方式使开发者能够更便捷地管理和维护代码,提升开发效率。
最新版 | SpringBoot3如何自定义starter(面试常考)
|
3天前
|
Java 开发者 Spring
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
20 7
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
59 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
23天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
107 13
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
85 14
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
2月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
30天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。