当前位置: 首页 > 后端技术 > Java

Java培训:22道springboot高频面试题

时间:2023-04-01 23:45:48 Java

1.什么是SpringBoot?SpringBoot是Spring开源组织下的一个子项目。它是Spring组件的一站式解决方案。主要是简化了Spring的使用难度,省去了繁重的配置,提供了各种launcher,方便开发者快速上手。2、SpringBoot有什么优势?减少开发和测试时间。使用JavaConfig有助于避免使用XML。避免大量Maven导入和各种版本冲突。提供有关如何发展的建议。通过提供默认值快速开始开发。不需要单独的Web服务器。这意味着您不再需要启动Tomcat、Glassfish或其他任何东西。由于没有web.xml文件,因此需要较少的配置。只需添加一个注解为@Configuration的类,然后添加一个注解为@Bean的方法,Spring将像以前一样自动加载对象并进行管理。您甚至可以将@Autowired添加到bean方法以使Spring自动装配所需的依赖项。基于环境的配置使用这些属性,您可以将正在使用的环境传递给应用程序:-Dspring.profiles.active={enviornment}。加载主要的应用属性文件后,Spring会在(application{environment}.properties)中加载后续的应用属性file_java_training。3、SpringBoot的核心配置文件有哪些?它们之间有什么区别?SpringBoot的核心配置文件是应用程序和引导程序配置文件。应用配置文件简单易懂,主要用于SpringBoot项目的自动配置。bootstrap配置文件有以下应用场景:使用SpringCloudConfig配置中心时,需要在bootstrap配置文件中添加连接配置中心的配置属性,加载外部配置中心的配置信息;一些固定的不能被覆盖的属性;出现一些加解密场景4.SpringBoot配置文件的格式有哪些?它们之间有什么区别?.properties和.yml的区别主要在于书写格式不同。1.propertiesapp.user.name=javastack2.ymlapp:user:name:javastack5.SpringBoot的核心注解是哪个?主要由哪些注解组成?启动类上面的注解是@SpringBootApplication,这也是SpringBoot的核心注解。主要组合包括以下三个注解:@SpringBootConfiguration:结合@Configuration注解实现配置文件的功能。@EnableAutoConfiguration:开启自动配置功能,也可以关闭一个自动配置选项,比如关闭数据源自动配置功能:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})。@ComponentScan:Spring组件扫描。6、开启SpringBoot特性的方式有哪些?继承spring-boot-starter-parent工程,引入spring-boot-dependencies工程来依赖。7、SpringBoot需要运行在独立的容器中吗?不需要,因为内置了Tomcat/Jetty等容器。8.SpringBoot的运行方式有哪些?使用命令打包或者在容器中运行,配合Maven/Gradle插件运行,直接执行main方法。9、SpringBoot自动配置的原理是什么?注解@EnableAutoConfiguration、@Configuration、@ConditionalOnClass是自动配置的核心,首先必须是配置文件,其次根据类路径中是否有这个类来自动配置。10.SpringBoot2.X有什么新功能?配置变更JDK版本升级第三方库升级响应式Spring编程支持HTTP/2支持配置属性绑定更多改进和增强...11.如何使用SpringBoot实现分页和排序?使用SpringBoot实现分页非常简单。这可以通过SpringData-JPA实现,将可分页的org.springframework.data.domain.Pageable传递给存储库的方法。12、如何实现SpringBoot应用的安全性?为了实现SpringBoot的安全性,我们使用了spring-boot-starter-security依赖,并且必须添加安全配置。它需要很少的代码。配置类必须扩展WebSecurityConfigurerAdapter并覆盖其方法。13.如何集成SpringBoot和ActiveMQ为了集成SpringBoot和ActiveMQ,我们使用了spring-boot-starter-activemq依赖。它只需要很少的配置,也不需要样板代码。14.什么是YAML?YAML是一种人类可读的数据序列化语言。它通常用于配置文件。如果我们想在配置文件中添加复杂的属性,与属性文件相比,YAML文件更加结构化且不易混淆。可见YAML是有层次化的配置数据的。15.SpringBoot中的monitor是什么?SpringBootActuator是SpringBoot框架中的重要功能之一。Springboot监视器可帮助您访问生产中正在运行的应用程序的当前状态。在生产环境中必须检查和监控几个指标。甚至某些外部应用程序也可能会使用这些服务来触发向相关人员发送警报消息。monitor模块公开了一组REST端点,可直接作为HTTPURL访问以检查状态。16.什么是招摇?你用SpringBoot实现了吗?Swagger广泛用于可视化API,使用SwaggerUI为前端开发者提供在线沙箱。Swagger是一种工具、规范和完整的框架实现,用于生成RESTfulWeb服务的可视化表示。它使文档能够以与服务器相同的速度更新。当通过Swagger正确定义时,消费者可以使用最少量的实现逻辑来理解远程服务并与之交互。因此,Swagger消除了调用服务时的猜测。17.如何用SpringBoot实现异常处理?Spring提供了一种非常有用的方法来使用ControllerAdvice来处理异常。我们通过实现ControlerAdvice类来处理控制器类抛出的所有异常。18.RequestMapping和GetMapping有什么区别?RequestMapping具有类属性,可以在注解中进行GET、POST、PUT等请求方法。GetMapping是GET请求方法的特例。为清楚起见,它只是RequestMapping的扩展。19.SpringBoot可以兼容旧的Spring项目吗?怎么做?兼容,使用@ImportResource注解导入旧的Spring项目配置文件。20、保护SpringBoot应用的方法有哪些?在生产中使用HTTPS使用Snyk检查您的依赖项升级到最新版本启用CSRF保护使用内容安全策略来防止XSS攻击21.SpringBootjar和普通jar有什么区别?SpringBoot项目最终打包的jar是一个可执行的jar。这种jar可以直接通过命令java-jarxxx.jar来运行。这种jar不能像普通jar一样被其他项目依赖,即使依赖了也不能使用。种类。SpringBoot的jar不能被其他项目依赖,主要是它和普通的jar结构不一样。普通的jar包,解压后直接就是包名,package就是我们的代码,而SpringBoot打包的可执行jar解压后在\BOOT-INF\classes目录下就是我们的代码,所以不能直接引用.如果一定要引用,可以在pom.xml文件中添加配置,将SpringBoot工程打包成两个jar,一个可执行,一个可引用。22.如何在SpringBoot中实现定时任务?定时任务也是一个常见的需求。SpringBoot对定时任务的支持主要来自于Spring框架。在SpringBoot中使用定时任务主要有两种方式,一种是使用Spring中的@Scheduled注解,另一种是使用第三方框架Quartz。Spring中@Scheduled的使用方式主要是通过@Scheduled注解来实现的。如果使用Quartz,只需要根据Quartz定义Job和Trigger即可。文章来自Java学习之道