【无标题】

springboot概述

springboot是什么?

spring boot只是一个,整合工具,辅助工具,我们在使用Spring框架进行开发的过程中,需要配置很多Spring框架包的依赖,如spring-core、 spring-bean、spring-context等 ,而这些配置通常都是重复添加的,而且需要做很多框架使用及环境参数的重复配置,如开启注解、配置日志等。Spring Boot致力于弱化这些不必要的操作,提供默认配置,yml配置文件。
创建独立的spring引用程序 main方法运行
嵌入的Tomcat 无需部署war文件,maven打出jar包直接跑起来就是个网站。
所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。

运行 SpringBoot 方式

打包用命令或者者放到容器中运行
用 Maven/Gradle 插件运行
直接执行 main 方法运行

为什么要用SpringBoot

快速开发,快速整合,配置简化、内嵌服务容器

springboot优点

(1)独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器 中,Spring Boot只要打 成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
(2)简化配置
​ spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
(3)自动配置
​ Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的 功能,无需其他配置。
(4)无代码生成和XML配置。
​ Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助 于条件注解完成的,这 也是Spring4.x的核心功能之一。
(5)实现了许多有用的非功能特性
​ 安全健康检测

starter 到底是什么

starter提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。

starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦

starter可以理解成pom配置了一堆jar组合的空maven项目,用来简化maven依赖配置,starter可以继承也可以依赖于别的starter

常用的 Starter 有哪些?

spring-boot-starter-web :提供 Spring MVC + 内嵌的 Tomcat 。
spring-boot-starter-data-jpa :提供 Spring JPA + Hibernate 。
spring-boot-starter-data-Redis :提供 Redis 。
mybatis-spring-boot-starter :提供 MyBatis 。

核心注解

springboot常用注解:@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootApplication是@Configuration、@EnableAutoConfiguration和@ComponentScan的组合。

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,比如添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,然后Spring Boot会对Tomcat和Spring MVC进行自动配置(spring.factories EnableAutoConfiguration配置了WebMvcAutoConfiguration)。
@ComponentScan:Spring组件扫描。开启自动扫描符合条件的bean(添加了@Controller、@Service等注解)。

注入bean相关

@Repository

DAO层注解,DAO层中接口继承JpaRepository<T,ID extends Serializable>,需要在build.gradle中引入相关jpa的一个jar自动加载。

@Service

@RestController注解相当于@ResponseBody+@Controller合在一起的作用,RestController使用的效果是将方法返回的对象直接在浏览器上展示成json格式.

@RequestBody
通过HttpMessageConverter读取Request Body并反序列化为Object(泛指)对象

@RequestMapping
@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上

@RequestParam:获取请求参数的值

全局配置文件中的属性如何生效,比如:server.port=8081,是如何生效的?

@ConfigurationProperties的作用就是将配置文件的属性绑定到对应的bean上。全局配置的属性如:server.port等,通过@ConfigurationProperties注解,绑定到对应的XxxxProperties bean,通过这个 bean 获取相应的属性(serverProperties.getPort())。

@SpringBootApplication
启动类上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要组合包含了以下3个注解:

@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。

Spring Boot Starter

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa 启动器依赖就能使用了。
Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

spring-boot-starter-parent

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

定义了 Java 编译版本。
使用 UTF-8 格式编码。
执行打包操作的配置。
自动化的资源过滤。
自动化的插件配置。
针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml。

配置相关

配置文件加载顺序

(1)首先是项目内的配置文件,大多数情况就是 application.yml 文件,顺序如下:

file:./config/ ( 项目根路径下的config文件夹)
file:./ (项目根路径)
classpath:/config/ (类路径下的config文件夹)
classpath:/ (类路径)
配置的优先级由高到底,高优先级的配置会覆盖低优先级的配置,没有的配置进行互补配置。
(2)然后就是外部的配置文件,就是我们把springboot项目打包之后做的配置。
可以使用 命令行参数 来配置。java -jar 项目.jar --server.port=8088,直接在启动命令后添加启动参数
也可以指定一个配置文件(参数过多的时候方便),启动项目的时候可以用spring.config.location来指定配置文件的位置
(3)命令行参数的配置优先级高于配置文件

YAML 配置的优势在哪里 ?

YAML 配置和传统的 properties 配置相比之下,有这些优势:

配置有序
简洁明了,支持数组,数组中的元素可以是基本数据类型也可以是对象
缺点就是不支持 @PropertySource 注解导入自定义的 YAML 配置。
————————————————
版权声明:本文为CSDN博主「且将&」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53233197/article/details/129306912

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值