欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > spring boot基础知识

spring boot基础知识

2024/11/30 5:36:18 来源:https://blog.csdn.net/weixin_44143876/article/details/140419421  浏览:    关键词:spring boot基础知识

spring boot是整合spring 一系列的包的坐标集合 对依赖进行整合
总体介绍
**加粗样式**
spring boot是用来方便构建项目的工具
spring cloud是用来方便spring boot项目之间进行数据交互通讯和配置的
spring cloud data Flow 是用来进行数据的连接的

Spring 缺点

  1. 配置繁琐
    虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多
    XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。
    Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
    所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所
    以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少。
  2. 依赖繁琐
    项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导
    入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发
    进度。

spring boot功能:

SpringBoot提供了一种快速开发Spring项目的方式,而不是对Spring功能上的增强。

  1. 自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定
Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。

  1. 起步依赖

起步依赖本质上是一个Maven项目对象模型(ProjectObject Model,POM),定义了对其他库的传递依赖
,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

  1. 辅助功能

提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

三个基本注解,controller,service,repository,分别代表mvc层,service层和dao层,是component的特化

spring 起步依赖原理分析

在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
在spring boot中存在版本锁定
在这里插入图片描述

spring-boot-starter-parent主要定义一些版本的信息

在这里插入图片描述

spring-boot-starter-web 依赖传递(间接依赖了其他版本坐标)

  • 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
  • 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
  • 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。

spring boot配置文件分类

  • SpringBoot提供了2种配置文件类型:properteis和yml/yaml
  • 默认配置文件名称:application
  • 在同一级目录下优先级为:properties> yml > yaml

是spring boot yaml文件基本语法

YAML: 基本语法

  • 大小写敏感
  • 数据值前边必须有空格,作为分隔符
  • 使用缩进表示层级关系(使用python的都懂)
  • 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层次混乱),在IDEA编辑器中可以使用tab键。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略。
server:port: 8080address: 127.0.0.1
name: abc#对象
person:name: zhangsanage: 20#对象行内写法
person2: {name: zhangsan,age: 20}#数组
address:- belijing- shanghai
#数组行内写法
address2: [beijing,shanghai]
#纯量
msg1:'hello \n world’#不会识别转义字符,会原样输出
msg2:"hello \n world”#会识别转义字符

参数引用
使用 ${keyname}

name: list
person: name: ${name}

key: valu的冒号后面必须跟上一个空格和多个空格

spring中获取数据

在这里插入图片描述
使用@Value注解进行字段自动注入
在这里插入图片描述
使用Environment Bean进行
在这里插入图片描述

@Autowired
private Environment env;

在这里插入图片描述
使用@ConfigurationProperties注解进行自动装配,如果有层级关系,就在注解传参时指定节点
@ConfigrationProperties(preson=“节点路径”)
在这里插入图片描述

如果需要自定义配置yal高亮有提示的需要进行配置的处理器
在这里插入图片描述

spring boot配置profile文件

  1. profile是用来完成不同环境下,配置动态切换功能的。

  2. profile配置方式

    • 多profile文件方式:提供多个配置文件,每个代表一种环境。
      • .application-dev.properties/yml开发环境
      • ·application-test.properties/yml测试环境
      • ·application-pro.properties/yml生产环境
    • yml多文档方式:
      • 在yml中使用—分隔不同配置
  3. profile激活方式

    • 配置文件:再配置文件中配置:spring.profiles.active=dev
    • 虚拟机参数:在VMoptions指定:-Dspring.profles.active=dev
    • 命令行参数:java-jarxxx.jar --spring.profiles.active=dev
  4. jar包生成
    点击Maven依赖中的生命周期(Lifecycle)中的package
    在这里插入图片描述

内部配置加载顺序

在这里插入图片描述
项目加载路径和模块配置文件

整合junit

整合redis

整合mybatis

整合swagger3

整合rabitMQ

整合jwt加密

阿里fastjson包JSON转换

整合lombok

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com