Spring-Boot的创建与配置文件

news2025/2/9 12:11:20

文章目录

  • 前言
    • Spring与SpringBoot的区别
    • SpringBoot的创建与使用
  • 更改国内源配置
    • SpringBoot目录介绍
    • SpringBoot配置文件
      • 配置⽂件的格式
        • properties 基本语法
        • yml的基本语法
        • yml的注意事项
    • properties VS yml 好坏


前言

前面讲述了 ,Spring的概念与使用方法 , 接下来要介绍的是 Spring更简单的版本 , 简称为Spring -Boot ,就像前面说的 , Spring是用来简化Java的一些程序的, 而SpringBoot 就是用来简化Spring的

Spring与SpringBoot的区别

Spring需要从中央仓库导入依赖等 , 但是SpringBoot不需要,它集成了依赖, 只需要创建的时候导入即可
SpringBoot提供了WEB依赖 ,使我们可以不用部署Tomcat等操作
Spring Boot会通过启动器开启自动装配功能然后通过注解进行扫描和配置所需要的Bean对象

Spring的时候需要XML文件配置开启一些功能,现在Spring Boot不用XML配置了,只需要写一个配置类(@Configuration和继承对应的接口)就可以继续配置

总结 : 1 快速添加依赖 , 2内置WEB容器 , 3 自动装配

SpringBoot的创建与使用

① 下载 SpringBoot Help插件
在这里插入图片描述
② 创建新的Spring Boot项目
在这里插入图片描述
设置SpringBoot的项目类型等
在这里插入图片描述
导入SpringBoot所需要的依赖 , 注意SpringBoot的版本!(红色框圈起来的) , 最右边表示引用的依赖, 中间表示勾选, 最左侧是目录
在这里插入图片描述
最后下一步,点击finsh,完成创建一个SpringBoot项目 , 这里提醒一下, SpringBoot 项目, 如果不是国内源的话, 会创建很久, 建议改成国内源哦!

更改国内源配置

① 打开设置,添加国内源配置, 要注意这俩个路径下面要确保有这个Setting文件 ,不是勾选上就OK的(Setting文件可以网上搜索一份)
在这里插入图片描述
②选择以后得项目都使用改配置 , 打开这个配置后 , 将上面配置国内源的流程重新走一边就行了 ,
在这里插入图片描述

SpringBoot目录介绍

在这里插入图片描述
要注意的是, 在SpringBoot中 , 所有Java文件和文件夹的创建都必须在demo文件夹下面, 这是一个规定

SpringBoot配置文件

SpringBoot 同样也是有配置文件的 , SpringBoot是少不少xml 配置,但是不代表没配置文件哦
⽐如:

  • 数据库的连接信息(包含⽤户名和密码的设置);
  • 项⽬的启动端⼝;
  • 第三⽅系统的调⽤秘钥等信息;
  • ⽤于发现和定位问题的普通⽇志和异常⽇志等。

配置⽂件的格式

配置文件的格式有俩种一种是 .properties , 另一种是 .yml
这里解释下, 俩种配置文件的不同, .properties配置文件属于是Spring官方带的配置文件 ,也是SpringBoot的默认配置文件 , 而yml 配置文件是新出来的配置文件,

理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置了“server.port”,那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护

properties 基本语法

properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如
但是我们一般不用这个配置 ,(想想如果好用,干嘛要出第二个格式呢),理由就是踏实键值对的格式, 意味着想这种spring.datasource同一个数据源中的属性配置要写好多遍, 而yml 就解决了这个问题

# 配置项⽬端⼝号 , 这个是注释
server.port=8084
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=
utf8
spring.datasource.username=root
spring.datasource.password=root

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。@Value 注解使⽤“${}”的格式读取,如下代码所示
在这里插入图片描述

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadYml {
	 @Value("${server.port}")
	 private String port;
	 @PostConstruct
	 public void postConstruct() {
		 System.out.println("Read YML,port:" + port);
	 }
}

yml的基本语法

yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、JavaScript、Perl 中(这个才是yml真正火的缘故, 因为properties这个是Spring官方的配置文件 ,一般官方代表什么, 安全与死板)

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略 ( 配置成功会有高亮显示)
示范

spring:
 datasource:
 url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
 username: root
 password: root

yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可

yml的注意事项

字符串默认不⽤加上单引号或者双引号。
单引号会转义特殊字符,特殊字符最终只是⼀个普通的字符串数据。
双引号不会转义字符串⾥⾯的特殊字符;特殊字符会作为本身想表示的意思
举个例子 : 比如写了 一句前端语句 , 加单引号就是一个普通的字符串, 加双引号就是一句前端代码

yml中还可以配置对象 ,使⽤另⼀个注解@ConfigurationProperties 来读取 , 一般不会这么写, 了解

properties VS yml 好坏

  1. properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的 树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ” 英文符号加空格, 并且空格不能省略
  2. properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的 解决数据冗余的问题。
  3. yml通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份 配置⽂件作为 Java 和 Go 的共同配置⽂件。
  4. yml ⽀持更多的数据类型。

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

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

相关文章

华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】

一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址,使服务中心到所有区域的距离的总和最小。 给你一个数组 positions,其中 positions[i] [le…

B+树:高效存储与索引的完美结合

目录 引言:一、定义:二、B树和B树三、特点:四、应用场景:总结: 引言: 在计算机科学领域中,数据结构的选择对于高效存储和索引数据至关重要。B树(B tree)作为一种自平衡的…

chatgpt赋能python:Python怎么并排输出

Python怎么并排输出 Python是一种高级编程语言,它受到了全球程序员的欢迎。在Python编程中,经常需要将多个变量或数据一起输出。 本文将介绍Python如何并排输出,使输出内容更加整齐美观,提高代码可读性和可维护性。 使用print(…

Chrome浏览器进程:了解多进程架构优劣的探索

文章目录 I. 介绍简述Chrome浏览器的进程模型和重要性 II. 多进程架构的优劣详述Chrome浏览器的多进程架构分析多进程架构对性能、安全性和稳定性的影响对比单进程架构的优缺点和Chrome浏览器多进程架构的差异 III. Chrome浏览器进程类型和作用解释Chrome浏览器中常见的进程类型…

OpenMMLab-AI实战营第二期——5-1.语义分割与MMSegmentation

文章目录 1. 基本概念1.1 案例演示1.2 应用1.3 语义分割概念 2. 语义分割算法2.1 语义分割基本思路2.1.1 按颜色2.1.2 逐像素分类 2.2 深度学习下的语义分割模型2.2.1 全卷积网络2.2.2 Unet2.2.3 上下文信息与PSPNet模型2.2.4 空洞卷积与DeepLab算法2.2.5 总结2.2.6 前言语义分…

我们该如何应对工作失误(How to Handle Failure at Work)

花时间反思 组织架构心理学家、Audrey Page & Associates执行服务总监,Penelope Faure博士表示:“人们在犯错后情绪往往会十分激动。”不论是因为老板在电子邮件中流露出对你的指责,还是因为你明显的疏忽导致客户利益受损,又…

Android 13(T) Media框架 - 智能指针

Android有一套自己的智能指针管理办法,并且将其运用在源码的各个角落,所以学习Media框架之前,我们有必要先了解下Android智能指针。 本节代码源自于Android 13(T),参考 (aospxref.com) 1 概述 与智能指针相关的总共有5个类&#…

前端加载超大图片(100M以上)实现秒开解决方案

前端加载超大图片(100M以上)实现秒开解决方案 前言 前端加载超大图片时,一般可以采取以下措施实现加速: 图片压缩:将图片进行压缩可以大幅减小图片的大小,从而缩短加载时间。压缩图片时需要注意保持图片质量,以免影响…

CSS基础学习--9 边框(Border)

一、CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色。 二、边框的样式 边框样式属性指定要显示什么样的边界。 border-style属性用来定义边框的样式 border-style 值: <!DOCTYPE html> <html> <head> <meta charset"utf-8">…

【爬虫】4.5 实践项目——爬取当当网站图书数据

目录 1. 网站图书数据分析 2. 网站图书数据提取 3. 网站图书数据爬取 &#xff08;1&#xff09;创建 MySQL 数据库 &#xff08;2&#xff09;创建 scrapy 项目 &#xff08;3&#xff09;编写 items.py 中的数据项目类 &#xff08;4&#xff09;编写 pipelines_1.py …

一文走进 SQL 编译-语义解析

一、概述 SQL 引擎主要由三大部分构成&#xff1a;解析器、优化器和执行器。解析器的主要作用是将客户端传来的命令解析编译成数据库能识别运行的命令&#xff0c;其主要由词法解析、语法解析和语义解析三部分构成&#xff0c;如下图所示。 本文将重点介绍 KaiwuDB 语义解析部…

机器学习-11 BP神经网络

BP神经网络 神经网络介绍前馈神经网络BP神经网络BP神经网络的核心思想误差反向传播算法BP网络结构 反馈神经网络自组织神经网络 神经网络相关概念激活函数Sigmoid函数tanh双曲正切函数ReLU函数Leaky RuLU函数Maxout函数激活函数的选择 损失函数Softmax交叉熵均方差损失函数自定…

chatgpt赋能python:Python文件处理入门指南-如何将Python程序转化为文件

Python文件处理入门指南 - 如何将Python程序转化为文件 Python是一门广泛应用于机器学习、数据分析、网络编程等领域的高级编程语言。Python代码简洁易懂&#xff0c;具有良好的可移植性和跨平台性&#xff0c;因此备受程序员们的喜欢。然而&#xff0c;要想让代码得到更广泛的…

kotlin协程flow retry功能函数返回失败后重试(4)

kotlin协程flow retry功能函数返回失败后重试&#xff08;4&#xff09; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {var count 0 //重试计数runBlocking {load().onEach…

chatgpt赋能python:Python怎么往表格里写数据

Python怎么往表格里写数据 在Python中&#xff0c;我们经常需要往表格里写入数据。表格是一种最基本的数据储存结构&#xff0c;而Python在处理表格数据方面非常出色。在这篇文章中&#xff0c;我们将介绍Python中常用的几种写入表格的方法。 方法一&#xff1a;使用CSV模块 …

MySQL-索引详解(二)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

哨兵架构redisCluster-Redis(五)

上篇文章介绍了主从架构以及lua脚本。 主从架构&lua脚本-Redis&#xff08;四&#xff09;https://blog.csdn.net/ke1ying/article/details/131159229 Sentinel集群 主从的搭建我们已经完成&#xff0c;但如果主节点宕机&#xff0c;这时候导致整个redis服务不可用怎么办…

Cesium入门之十:Cesium加载3DTiles数据

目录 3DTiles介绍3DTiles数据结构Cesium中与3DTiles相关的类1.Cesium3DTileset类常用属性&#xff1a;常用方法&#xff1a; 2.Cesium3DTileStyle类常用属性&#xff1a; 3.Cesium3DTileContent类常用属性常用方法 4. Cesium3DTileFeature类常用属性常用方法 5.Cesium3DTile类常…

chatgpt赋能python:Python怎么循环

Python怎么循环 循环是编程中最重要的控制结构之一&#xff0c;它允许我们重复执行一组语句&#xff0c;直到满足某个条件为止。在Python中&#xff0c;我们有多种循环结构可供使用&#xff0c;本文将介绍它们及其用法。 for循环 for循环通常用于迭代&#xff08;遍历&#…

chatgpt赋能python:在Python中用何种方式来建立SEO友好网站?

在Python中用何种方式来建立SEO友好网站&#xff1f; 在当今数字时代&#xff0c;一个强大且易于维护的网站是任何企业或组织成功的关键。但是&#xff0c;一个网站的外观和功能不代表它的成功。如果语义不清、标记不恰当或结构不正确&#xff0c;网络爬虫可能会忽略您的网站&…