2023年面试题之springboot

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一. 如何重新加载 Spring Boot 上的更改而无需重新启动服务器?

Spring Boot项目如何热部署?

这可以使用 DEV 工具来实现。通过这种依赖关系您可以节省任何更改嵌入式tomcat 将重新启动。Spring Boot 有一个开发工具(DevTools模块它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 Spring Boot 上的更改而无需重新启动服务器。这将消除每次手动部署更改的需要。SpringBoot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用程序。

二. SpringBoot微服务中如何实现 session 共享 ?

在微服务中一个完整的项目被拆分成多个不相同的独立的服务各个服务独立部署在不同的服务器上各自的 session 被从物理空间上隔离开了但是经常我们需要在不同微服务之间共享session 常见的方案就是 Spring Session + Redis 来实现 session 共享。将所有微服务的session 统一保存在 Redis 上当各个微服务对 session 有相关的读写操作时都去操作 Redis 上的 session 。这样就实现了 session 共享Spring Session 基于 Spring 中的代理过滤器实现使得 session 的同步操作对开发人员而言是透明的非常简便。

三. 您使用了哪些 starter maven 依赖项?

使用了下面的一些依赖项

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持

spring-boot-starter-data-jpa 数据库支持

spring-boot-starter-data-redis redis数据库支持

spring-boot-starter-data-solr solr支持

mybatis-spring-boot-starter 第三方的mybatis集成starter

自定义的starter(如果自己开发过就可以说出来)

四. Spring Boot 中的 starter 到底是什么 ?

首先这个 Starter 并非什么新的技术点基本上还是基于 Spring 已有功能来实现的。首先它提供了一个自动化配置类一般命名为 XXXAutoConfiguration 在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的然后它还会提供一系列的默认配

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>

置也允许开发者根据实际情况自定义相关配置然后通过类型安全的属性(spring.factories)注入将这些配置属性注入进来新注入的属性会代替掉默认属性。正因为如此很多第三方框架我们只需要引入依赖就可以直接使用了。当然开发者也可以自定义 Starter

五. Spring Boot 中如何实现定时任务 ?

在 Spring Boot 中使用定时任务主要有两种不同的方式一个就是使用 Spring 中的 @Scheduled注解另一-个则是使用第三方框架 Quartz。使用 Spring 中的 @Scheduled 的方式主要通过 @Scheduled 注解来实现。

六. spring-boot-starter-parent 有什么用 ?

我们都知道新创建一个 Spring Boot 项目默认都是有 parent 的这个 parent 就是 springbootstarter-parent spring-boot-starter-parent 主要有如下作用

1. 定义了 Java 编译版本为 1.8 。

2. 使用 UTF-8 格式编码。

3. 继承自 spring-boot-dependencies这个里边定义了依赖的版本也正是因为继承了这个依

赖所以我们在写依赖时才不需要写版本号。

4. 执行打包操作的配置。

5. 自动化的资源过滤。

6. 自动化的插件配置。

7. 针对 application.properties 和 application.yml 的资源过滤包括通过 profile 定义的不同

环境的配置文件例如 application-dev.properties 和 application-dev.yml。

总结就是打包用的

七. SpringBoot如何实现打包

进入项目目录在控制台输入mvn clean packageclean是清空已存在的项目包package进行打包

或者点击左边选项栏中的Mavne先点击clean在点击package

八.Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

Spring Boot 项目最终打包成的 jar 是可执行 jar 这种 jar 可以直接通过 java -jar xxx.jar 命令来运行这种 jar 不可以作为普通的 jar 被其他项目依赖即使依赖了也无法使用其中的类。Spring Boot 的 jar 无法被其他项目依赖主要还是他和普通 jar 的结构不同。普通的 jar 包解压后直接就是包名包里就是我们的代码而 Spring Boot 打包成的可执行 jar 解压后在 \BOOTINF\classes 目录下才是我们的代码因此无法被直接引用。如果非要引用可以在 pom.xml文件中增加配置将 Spring Boot 项目打包成两个 jar 一个可执行一个可引用。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring