当前位置: 首页 > news >正文

Spring Boot相关知识

简单介绍一下Spring?有什么缺点?

Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象实现了EJB的功能。

缺点:虽然Spring的组件代码是轻量级的,但他的配置却是重量级的(需要大量xml配置),除此之外,相关库的依赖、版本冲突也非常常见。

为什么要有Spring Boot?

Spring Boot旨在简化Spring的开发。

什么是Spring Boot Staters?

Spring Boot Staters是一系列依赖关系的集合,因为它的存在,项目的依赖关系对我们来说变得更加简单了。

Spring Boot支持哪些内嵌Servlet容器?

1.Tomcat 9.0

2.Jetty 9.4

3.Undertow 2.0

@SpringBootApplication注解

@SpringBootApplication是@Configuration、@EnableAutoConfiguration、@ComponentScan注解的集合。

@Configuration:允许在上下文注册额外的Bean或导入其他配置类

@ComponentScan:扫描被@Component注解的bean,注解默认会扫描该类所在的包下所有的类

@EnableAutoConfiguration:启动SpringBoot的自动配置机制

开发RESTful Web服务常用的注解有哪些?

Spring Bean相关:

@Autowired : 自动导入对象到类中,被注入进的类同样要被Spring容器管理。

@RestController : @RestControl1er注解是@Controller和@ ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。

@Component : 通用的注解,可标注任意类为Spring 组件。如果一个Bean不知道属于哪个层,可以使用@Component注解标注。

@Repository : 对应持久层即Dao层,主要用于数据库相关操作。

@Service :对应服务层,主要涉及一些每杂的逻辑,需要用到Dao层。

@Controller : 对应Spring MVC控制层,主要用于接受用户请求并调用Service层返回数据给前端页面。

常见的HTTP请求类型:

@Get Mapping :GET 请求

@PostMapping : POST 请求

@PutMapping : PUT请求

@DeleteMapping : DELETE 请求

前后端传值:

@RequestParam 获取查询参数

@PathVariable  获取路径参数

@RequestBody : 读取request请求,接收到数据之后会自动将数据绑定到Java对象上去。

什么是YAML?有什么优缺点?

YAML是一种人类可读的数据序列化语言,通常用于配置文件。

优点:YAML文件具有结构化的特点,直观清晰,有层次感。

缺点:不支持@PropertySource注解导入自定义的YAML配置

Spring Boot常用的读取配置文件的方式有哪些?

1.通过@Value读取比较简单的配置信息(不被推荐)

2.通过@ConfigurationProperties读取并与bean绑定(使用@Component)

        可以像普通bean一样,将其注入到类中使用。

3.如果不使用@Component,要在使用配置文件的地方使用@EnableConfigurationProperties注册我们配置的bean

4.@PropertySource读取指定的Properties文件

常见的Bean映射工具

Spring BeanUtils、Apache BeanUtils、MapStruct、 ModelMapper、Dozer、 Orika、 JMapper 

Spring Boot如何监控系统实际运行状态?

可以使用Spring Boot Actuator对Spring Boot项目进行简单的监控,提供了一些获取程序运行时的内部状态信息的API。

Spring Boot如何做请求参数校验?

只需要导入spring-boot-starter-web依赖就够了,它的子依赖包含了我们所需要的东西。

相关文章:

  • 自动化专业英语
  • 【Oracle EBS R12】第二章 P2P O2C cycle(英文版)
  • 案例开发-日程管理2第一期(超详细教程、配备图文和源代码注释,没学过也能看懂)
  • 基于腾讯云 AI 代码助手的Web端宝可梦图鉴实践记录
  • springboot的拦截器,监听器,过滤器,servlet的使用(三大组件)
  • Arduino教程(1)
  • Ubuntu配置carla docker环境
  • 从“抠图”到“抠视频”,Meta上新AI工具SAM 2。
  • Android14音频进阶之使能内核debugfs:Adsp输出日志(七十九)
  • 【学习笔记】A2X通信的协议(三)- A2X PC5通信(一)
  • 使用visual studio2019创建dll导出自定义类
  • C语言实现浮点数或整数转成字符串
  • 【letcod-c++】128.最长连续序列
  • Visual Studio Code中跟创建运行项目有关的几个终端命令
  • 代码随想录算法训练营第七天(二)|15.三数之和 18.四数之和
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【mysql】环境安装、服务启动、密码设置
  • 2017-08-04 前端日报
  • Android Volley源码解析
  • Apache的80端口被占用以及访问时报错403
  • Codepen 每日精选(2018-3-25)
  • ES6之路之模块详解
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • golang中接口赋值与方法集
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java Agent 学习笔记
  • Promise面试题2实现异步串行执行
  • SAP云平台里Global Account和Sub Account的关系
  • 看域名解析域名安全对SEO的影响
  • 力扣(LeetCode)22
  • 区块链将重新定义世界
  • 入门级的git使用指北
  • 使用agvtool更改app version/build
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 用element的upload组件实现多图片上传和压缩
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 转载:[译] 内容加速黑科技趣谈
  • 阿里云ACE认证学习知识点梳理
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​补​充​经​纬​恒​润​一​面​
  • ###C语言程序设计-----C语言学习(3)#
  • #define 用法
  • #if #elif #endif
  • ( 10 )MySQL中的外键
  • (¥1011)-(一千零一拾一元整)输出
  • (07)Hive——窗口函数详解
  • (33)STM32——485实验笔记
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (四)Controller接口控制器详解(三)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (五)c52学习之旅-静态数码管
  • (一) springboot详细介绍
  • (一)u-boot-nand.bin的下载