快速上手SpringBoot,yml数据读取,yaml语法规则,SpringBoot配置文件介绍,Idea中隐藏指定文件或指定类型文件

一、创建SpringBoot项目的方式

基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构

基于SpringBoot官网创建项目,地址:https://start.spring.io/
网络不好时经常连接超时!!!

连接超时
这里可以选择去阿里云服务下载
基于阿里云创建项目,地址:https://start.aliyun.com
可能版本较低,可以在pom文件中修改一下自己需要SpringBoot的版本
在这里插入图片描述
实在不行就用下面方式手写

最简SpringBoot项目与基本的maven项目的区别

最简SpringBoot程序所包含的基础文件(相比不用骨架的maven项目,只有这两处不同)
若在没有网的情况下,可以自己新建maven项目修改下面两项就可以(前提是之前有创建过,就是说本地仓库里有相关的依赖)

  1. pom.xml文件
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  1. Application类(引导类)
package com.aaa;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

二、SpringBoot简介

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程
1. Spring程序缺点

  • 依赖设置繁琐
  • 配置繁琐

2. SpringBoot程序优点

  • 起步依赖(简化依赖配置)
  • 自动配置(简化常用工程相关配置)
  • 辅助功能(内置服务器,……)
  1. 开发SpringBoot程序要继承spring-boot-starter-parent
  2. spring-boot-starter-parent中定义了若干个依赖管理
  3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
  4. 继承parent的形式也可以采用引入依赖的形式实现效果

三、SpringBoot项目解析

1. parent

  • 仅定义未使用(<dependencies>标签中才是真正使用的依赖)
  • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
  • spring-boot-starter-parent各版本间存在着诸多坐标版本不同

2. starter

  • SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的

实际开发

  • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V
  • 如发生坐标错误,再指定Version(要小心版本冲突)
  1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
  2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
  3. 使用starter可以实现快速配置的效果,达到简化配置的目的

3. 引导类

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目(并没有像Spring项目那样,启动Tomcat呦
  2. SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

4. 内嵌服务器(默认为Tomcat)

spring-boot-starter-web中内嵌Tomcat
在这里插入图片描述

变更内嵌服务器(jetty)

变更内嵌服务器思想是去除现有服务器,添加全新的服务器

使用maven依赖管理变更起步依赖项

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--web起步依赖环境中,排除Tomcat起步依赖-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--添加Jetty起步依赖,版本由SpringBoot的starter控制-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
    </dependencies>

运行项目:
在这里插入图片描述

Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

SpringBoot内置服务器
  1. tomcat(默认) :apache出品,粉丝多,应用面广,负载了若干较重的组件
  2. jetty : 更轻量级,负载性能远不及tomcat
  3. undertow :负载性能勉强跑赢tomcat

四、Idea中隐藏指定文件或指定类型文件

在新建SpringBoot项目时,会出现很多我们不想看见的文件和文件夹(例如.mvn mvnw mvnw.cmd .idea…),可以用下面方式隐藏掉(不显示出来),一般不要把target目录隐藏了

  • Setting → File Types → Ignored Files and Folders
  • 输入要隐藏的文件名,支持*号通配符
  • 回车确认添加
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/916e41c490314b59b799880f715f328b.png

五、SpringBoot配置文件

SpringBoot默认配置文件application.properties

1. 修改服务器端口

server.port=80

2. 关闭运行日志图标(banner)

spring.main.banner-mode=off

3. 设置日志相关

logging.level.root=debug

SpringBoot内置属性查询

SpringBoot提供了3种配置文件的格式

  • properties(传统格式/默认格式)
  • yml(主流格式)
  • yaml

这三种配置文件是共存的,SpringBoot配置文件加载顺序
application.properties > application.yml > application.yaml

不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留

常用配置文件种类
application.yml

配置文件自动提示功能消失解决方案

  1. Setting → Project Structure → Facets
  2. 选中对应项目/工程
  3. Customize SpringBoot
  4. 选择配置文件

在这里插入图片描述

yaml

YAML(YAML Ain’t Markup Language),一种数据序列化格式

  • 优点:
    – 容易阅读
    – 容易与脚本语言交互
    – 以数据为核心,重数据轻格式
  • YAML文件扩展名
    .yml(主流)
    .yaml
yaml语法规则
  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • # 表示注释
  • 核心规则:数据前面要加空格与冒号隔开

字面值表示方式

boolean: TRUE                         #TRUE,true,True,FALSE,false,False均可
float: 3.14                           #6.8523015e+5 #支持科学计数法
int: 123                              #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~                               #使用~表示null
string: HelloWorld                    #字符串可以直接书写
string2: "Hello World"                #可以使用双引号包裹特殊字符
date: 2018-02-17                      #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00   #时间和日期之间使用T连接,最后使用+代表时区

数组表示方式
在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

subject:
  - Java
  - 前端
  - 大数据
enterprise:
  name: itcast
  age: 16
  subject:
    - Java
    - 前端
    - 大数据
likes: [王者荣耀,刺激战场]    #数组书写缩略格式
users:                      #对象数组格式
  - name: Tom
    age: 4
  - name: Jerry
    age: 5
users:                      #对象数组格式二
  -
    name: Tom
    age: 4
  -
    name: Jerry
    age: 5
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]   #对象数组缩略格式
yml数据读取
  1. 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
    在这里插入图片描述

如果数据存在多层级,依次书写层级名称即可

  1. 在配置文件中可以使用属性名引用方式引用属性
baseDir: /usr/local/fire

center:
  dataDir: ${baseDir}/data
  tmpDir: ${baseDir}/tmp
  logDir: ${baseDir}/log
  msgDir: ${baseDir}/msgDir
  1. 属性值中如果出现转义字符,需要使用双引号包裹
lesson: "Spring\tboot\nlesson"
  1. 在配置文件中可以使用${属性名}方式引用属性值
  2. 如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析
封装全部数据到Environment对象
  1. 使用Environment对象封装全部配置信息
  2. 使用@Autowired自动装配数据到Environment对象中

在这里插入图片描述

自定义对象封装指定数据
  1. 使用@ConfigurationProperties注解绑定配置信息到封装类中
  2. 封装类需要定义为Spring管理的bean,否则无法进行属性注入

使用时直接@Autowired注入我们定义的类就行!!
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打乒乓球只会抽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值