java面试题(SpringBoot)

news2024/9/25 17:17:06

SpringBoot

1.什么是SpringBoot?有什么优点?

        springboot是spring的子项目,是spring组件的一站式解决方案,简化了使用的难度,简省了配置

优点:

  1. 容易上手,提升开发效率
  2. 内置web容器
  3. 管理第三方工具包,避免了大量maven版本冲突
  4. 简化开发,没有代码生成,也没有xml配置
  5. 开箱即用,减少配置

2.SpringBoot核心注解是什么?由哪几个注解组成?

核心注解是:@SpringBootApplication

组成:

        @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能

        @EnableAutoConfiguration:打开自动配置功能

        @ComponentScan:Spring组件扫描

3.SpringBoot自动装配机制

自动装配就是自动去把第三方组件的Bean装载到IOC容器里面,不需要开发人员再去写Bean相关的配置;

在SpringBoot中只需要加上@SpringBootApplication注解就可以实现自动装配;

4.SpringBoot如何实现应用程序的安全性

使用依赖项,必须添加安全配置

5.SpringBoot中监听器是什么

actuator,监视器可帮助访问生产环境中正在运行的应用程序的当前状态

6.什么是 CSRF 攻击?

CSRF指的是跨站请求伪造

7.SpringBoot比Spring做了哪些改进?

  1. springboot可以独立建立spring应用程序
  2. 内嵌tomcat
  3. 无需繁重的xml配置
  4. 可以自动配置spring
  5. 整合了常用的依赖

8.运行SpringBoot有哪几种方式

  1. 打包用命令或者放到容器中运行
  2. 用maven插件运行
  3. 直接执行main方法

9.SpringBoot配置加载顺序

通过事件监听的方式读取配置文件

1.properties文件

2.ymal文件

3.系统环境变量

4.命令行参数

10.为什么SpringBoot的jar可以直接运行

11.SpringBoot的启动原理

12.SpringBoot Starter是什么?常用的Starter有哪些?

Starter可以理解为启动器,包含了一系列可以集成到应用里面的依赖包,可以一站式集成Spring其他的技术,而不需要到处寻找代码和依赖包。

常见的Starter:

        spring-boot-starter-web:嵌入servlet与jsp支持

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

        spring-boot-starter-data-redis:redis支持

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

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

        可以实现接口ApplicationRunner,重写run方法,再把实现接口的类加入ioc容器

14.SpringBoot如何实现异常处理

        通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常

15.SpringBoot的核心配置文件有哪些?区别是什么?

        核心配置文件:application和bootstrap配置文件

区别:

        1.bootstrap先于application加载,bootstrap里面的属性不能被覆盖

        2.application主要用于spring boot 项目的自动化配置

        3.bootstrap:使用配置中心时,这时需要在bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的配置;一些加密/解密的场景。

16.Spring Boot、Spring MVC 和 Spring 有什么区别?

        1.范围:spring mvc < spring < springboot;

        2.Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架,而Spring Boot 是基于Spring的一套快速开发整合包

        3.Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展

17.SpringBoot的run方法做了什么事情?

         做了一个类似于ioc的初始化操作

        1.记录Spring boot启动时间

        2.获取所有在构造器中,从spring.factories文件读取加载的监听器

        3.启动所有监听器

        4.用已有的数据准备上下文

        5.刷新Context

18.SpringBoot如何解决跨域

        利用CORS来解决跨域,通过实现WebMvcConfigurer接口,然后重写addCorsMappings方法来解决跨域。

19.SpringBoot如何兼容老的Spring项目

        可以兼容;可以使用@ImportResource注解来导入老Spring项目的配置文件

20.SpringBoot如何实现定时任务

        使用@Scheduled注解来实现

21.@SpringBootApplication注解有什么用?为什么一定要用它?

 当spring容器在启动时加上@SpringBootApplication注解,就相当于类上加了:

        1.@EnableAutoConfiguration:将自动配置类导入到Spring容器中,进行解析

        2.@SpringBootConfiguration:表示当前类是一个配置类

        3.@ComponentScan:Spring容器会进行扫描,扫描路径为当前解析类的包路径

所以,只要加上了它,SpringBoot就会进行扫描,就会导入自动配置类并解析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第六章 物理层

数据通信基础 数据通信基本概念 消息与信息&#xff1b;消息是信息的载体 消息&#xff1a;人类能够感知的描述信息&#xff1a;抽象概念&#xff0c;可以理解为消息中所包含的有意义的内容 通信&#xff1a;一点精确或近似地再生另一点的信息信号&#xff1a;传递信息的载体…

提高客户忠诚度的 5 种方法

提高客户忠诚度是成功经营企业的最重要因素之一。忠诚的客户也更有可能向他们的朋友和家人推荐您的业务&#xff0c;从而开辟更多的收入来源。所以您需要将您的战略重点放在建立作为企业主的客户忠诚度上。 提高客户忠诚度的 5种方法 1.优先考虑客户服务 作为企业应该积极主动…

工赋开发者社区 | MES/MOM数据采集系统需求分析和总体设计

随着社会市场需求的不断变化&#xff0c;传统生产车间内的数据采集技术无法跟上市场变化的需求&#xff0c;容易出现数据记录滞后、实时监控困难等问题&#xff0c;造成了车间的生产效率低、产品质量低。在全球信息化的时代背景下&#xff0c;企业内的信息化管理可有效促进经济…

企业管理系统CRM与ERP有何区别

随着企业不断发展壮大&#xff0c;越来越多的企业引进管理系统&#xff0c;助力自身生产管理。目前市面上比较火热的企业管理系统软件有OA、CRM和ERP系统&#xff0c;关于企业OA管理系统&#xff0c;前面我们已经给出了很多介绍。今天主要带大家了解一下企业管理系统CRM和ERP系…

一文弄懂Python中的 if __name__ == __main__

1. 引言 在Python相关代码中&#xff0c;我们经常会遇到如下代码段&#xff1a; # stuff if __name__ "__main__":# do stuff本文将尽可能使用简单的样例来解释这里发生了什么&#xff0c;以及需要使用if __name__"__main__"的情形。请注意&#xff0c;…

m3u8视频文件破解爬取教程(请尊重知识产权,切勿违法),该方法需要基础开发知识

// UserScript // name media-source-extract // namespace https://github.com/Momo707577045/media-source-extract // version 0.8.2 // description https://github.com/Momo707577045/media-source-extract 配套插件 // author Momo707577045 // i…

ACL综合实验

拓扑结构&#xff1a; 要求 1、PC1可以Telnet R1&#xff0c;但是不能pingR1 2、PC1可以ping R2&#xff0c;但是不能Telnet R2 3、PC2的所有要求与PC1相反 使用的设备&#xff1a;4台路由器、1台交换机 解决网络拓扑&#xff1a; 1、确定广播域的个数 2、分配网段 3、配置…

【2023 · CANN训练营第一季】:AscendCL应用开发深入讲解 基础知识介绍

昇腾&#xff08;Ascend&#xff09;CANN&#xff08;Compute Architecture for Neural Networks&#xff09;是华为推出的一款面向AI处理器的软件开发工具包&#xff0c;用于支持各种AI应用的开发和部署。它的深度神经网络应用开发流程可以分为以下几个主要步骤 AscendCL应用…

TS WIKI 个人知识库软件

TS WIKI 个人知识库软件(VER: 0.1) TS WIKI 目标是做一个可以本地化部署&#xff0c;小型的&#xff0c;适合个人或小型团队的知识管理软件。 T(iny) S(mall) WIKI 软件界面 TS WIKI 功能说明 1、简化的软件依赖和安装 依赖的软件最简化。软件只使用 SQLITE 数据库&#xf…

【Java闭关修炼】SpringMVC-HttpMeaasgeConverter

【Java闭关修炼】SpringMVC-HttpMeaasgeConverter概述RequestBodyRequestEntity使用原生servlet响应浏览器ResponseBody概述 浏览器发送到服务器&#xff0c;将请求报文转换为java对象 服务器响应浏览器&#xff0c;将java对象转换成响应报文 RequestBody 将请求体中的请求报…

Flink系列-6、Flink DataSet的Transformation

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址&#xff1a;https://flink.apache.org/ 学习资料&#xff1a;https://flink-learning.org.cn/ 目录Flink 算子Ma…

C生万物 | 火眼辨析指针数组与数组指针

本文我们来讲讲C语言中的易混淆的指针数组与数组指针✒ 文章目录 一、指针数组1、概念明细2、数组地址偏移量与指针偏移量3、指针变量与数组名的置换【✔】4、实例讲解① 指针数组存放地址② 指针数组存放数组 二、数组指针1、数组指针的定义2、&数组名VS数组名3、数组指针…

VL822- GEN2 10Gbps简述及运用(USB3.1 HUB芯片)

VL822是一颗USB3.1 GEN2&#xff08;10Gbps&#xff09;的HUB芯片&#xff0c;有三种封装分别是QFN88(10x10x0.85 mm);QFN76&#xff08;9x9x0.85 mm &#xff09;;QFN56(7x7x0.85 mm)。这三种封装在USB数据协议上都是一样&#xff0c;但各个封装都有自己的实际应用特点。 VL8…

ODrive运放电路的分析和替代方案

SimpleFOC、ODrive和VESC教程链接汇总&#xff1a;请点击   一、电流采样范围的计算 这是一个典型的Lowside电流采样运放电路&#xff0c;下图&#xff1a; 实际运用中会增加阻容做滤波处理。&#xff08;SP1-SN1&#xff09;就是电流在R5采样电阻上产生的压降&#xff0c…

模型融合和预测结果融合

模型融合和预测结果融合 文章目录模型融合和预测结果融合1. 模型融合提升技术1. Bagging 方法和随机森林2. Boosting 方法2. 预测结果融合策略1. Voting2. 软投票代码示例&#xff1a;3. Averaging 和 Ranking4. Blending5. Stacking3. 其他提升方法1. 模型融合提升技术 模型融…

一个Java线程的线生(线生 vs 人生)

java线程的使用 1. Java多线程概述 下面我们看下Java的多线程 1.1 java天生就是多线程的 一个Java程序从main()方法开始执行&#xff0c;然后按照既定的代码逻辑执行&#xff0c;看似没有其他线程参与&#xff0c;但实际上Java程序天生就是多线程程序&#xff0c;因为执行main…

设计模式 -- 建造者模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

WPF教程(四)--Dispatcher

一、Dispatcher介绍 微软在WPF引入了Dispatcher&#xff0c;那么这个Dispatcher的主要作用是什么呢&#xff1f; 不管是WinForm应用程序还是WPF应用程序&#xff0c;实际上都是一个进程&#xff0c;一个进程可以包含多个线程&#xff0c;其中有一个是主线程&#xff0c;其余的是…

Embodied AI 具身智能

大模型的时代的到来&#xff0c;现在的大模型的参数几乎是几何级数的上升。 谷歌和柏林工业大学的团队重磅推出了史上最大视觉语言模型——PaLM-E&#xff1a;An Embodied Multimodal Language Model。通才大模型PaLM-E&#xff0c;什么是通才模型&#xff0c;就是多任务统一学…

NeRF必读:NeuS--三维重建的milestone以及脑补的作者脑回路

前言 NeRF从2020年发展至今&#xff0c;仅仅三年时间&#xff0c;而Follow的工作已呈井喷之势&#xff0c;相信在不久的将来&#xff0c;NeRF会一举重塑三维重建这个业界&#xff0c;甚至重建我们的四维世界&#xff08;开头先吹一波&#xff09;。NeRF的发展时间虽短&#xf…