Springboot从入门到起飞-【day01】

 个人主页→VON

收录专栏→Springboot从入门到起飞

 一、前言

经过了近两个月的沉淀开始了新专栏的学习,经过深思熟虑还是决定重新学习java,因为基础部分东西太多太乱就不进行逐一的更新了,等到学完了一同进行更新。

二、Springboot简要概述

Spring Boot 是由 Pivotal 团队提供的一种全新的 Java 框架,旨在简化 Spring 应用程序的创建和开发过程。它基于“习惯优于配置”的理念,提供了一系列预设的依赖包,使得开发者可以快速启动和运行 Spring 应用,而无需过多关注繁琐的 XML 配置。

核心功能

Spring Boot 的核心功能包括:

  • 可独立运行的 Spring 项目:Spring Boot 应用可以以 jar 包的形式独立运行,无需部署到外部 Servlet 容器。

  • 内嵌的 Servlet 容器:支持内嵌 Tomcat、Jetty 或 Undertow,简化了 web 应用的部署流程。

  • 简化的 Maven 配置:Spring Boot 提供了基础 POM 文件来简化 Maven 配置,减少了项目构建的复杂性。

  • 自动配置 Spring:根据项目依赖自动配置 Spring 框架,减少了手动配置的需求。

  • 生产就绪型功能:包括性能指标、应用信息和健康检查等,可直接在生产环境中使用。

  • 无代码生成和 XML 配置:Spring Boot 不需要生成代码,也不需要 XML 配置文件,全部配置可以通过注解和属性文件完成。

优势和好处

使用 Spring Boot 的好处包括:

  • 简化开发:开发者可以专注于业务逻辑,而不是框架的配置。

  • 快速整合第三方框架:通过 Maven 依赖关系和继承,Spring Boot 可以快速整合如 Hibernate、MyBatis 等第三方框架。

  • 适合微服务架构:Spring Boot 的轻量级和自动配置特性使其成为实现微服务架构的理想选择。

  • 简化部署:内嵌的 HTTP 服务器(如 Tomcat)允许以 Java 应用程序的形式执行,简化了部署过程。

  • 简化监控:通过引入 spring-boot-starter-actuator 依赖,可以方便地使用 REST 方式监控应用性能。

为什么学习 Spring Boot

学习 Spring Boot 的理由包括:

  • 官方推荐:Spring Boot 是官方推荐的技术,得到了广泛的支持和推广。

  • 简化编码和配置:Spring Boot 大大简化了编码和配置工作,提高了开发效率。

  • 未来发展趋势:微服务是未来的发展趋势,Spring Boot 支持 REST API 的实现,适合构建微服务架构。

三、工程创建

最新版本的idea

结合我自身情况来简要说明一下,我的idea相对来说比较新的了,但是视频中所用的jdk是1.8(8)。使用最新版本的idea如果想要创建jdk8的Springboot项目需要用到阿里云的镜像来创建。

默认情况下是无法选到java8的。

如果想要创建java8的,需要改变url的地址。 

创建好的Springboot工程长这样。

四、配置文件

YAML配置文件的基础知识

YAML(YAML Ain't Markup Language)是一种数据序列化格式,广泛用于配置文件和数据交换。它以人类可读的形式呈现数据结构,支持多种编程语言,如Python、Java和Ruby。YAML的设计目标是数据的跨语言交换,易于人类阅读和编写,同时支持通用的数据类型。

YAML的语法规则

YAML的语法简洁直观,主要特点包括:

  • 缩进:使用空格缩进来表示层级关系,通常是2或4个空格。

  • 键值对:使用冒号和空格来分隔键和值。

  • 列表:使用短横线-来表示列表项。

  • 注释:使用#来添加注释。

  • 数据类型:支持字符串、数字、布尔值、列表、字典和空值等类型。

例如,一个简单的YAML配置文件可能如下所示:

name: "John"

age: 30

isStudent: true

fruits:

- apple

- banana

- orange

Python中的YAML操作

在Python中,可以使用pyyaml库来处理YAML文件。首先需要安装这个库,可以通过pip install pyyaml命令来安装。使用pyyaml库,可以轻松地读取和写入YAML文件。

读取YAML文件

import yaml



# 打开并读取YAML文件

with open(file="config.yaml", mode="r", encoding='utf-8') as f:

data = yaml.safe_load(f)

print(data)

写入YAML文件

import yaml



# 准备要写入的数据

data = {

"Person": {

"name": "John",

"age": 30,

"address": {

"street": "123 Main St",

"city": "Anytown",

"state": "CA"

}

}

}



# 写入YAML文件

with open(file="output.yaml", mode="w") as f:

yaml.dump(data, f)

YAML在自动化测试中的应用

YAML文件可以与UI自动化测试结合使用,实现关键字驱动测试(KDT)。通过定义一系列的动作和参数,可以创建灵活的测试脚本,如访问页面、输入文本、点击按钮等操作。

- action: goto

params:

url: 'https://www.example.com'

- action: sendkeys

params:

locator: ['id', 'search']

value: 'query'

在Python中,可以通过解析这些YAML配置来驱动测试用例的执行,从而提高测试的可维护性和可读性。

YAML配置文件因其简洁性和易读性,在软件开发和自动化测试中被广泛采用。它不仅提高了配置管理的效率,还促进了不同系统和语言间的数据交换。

操作properties配置文件的方法

在Java中,properties配置文件通常用于存储不经常变动的信息,如数据库连接配置或缓存服务器连接配置。这些配置文件以.properties为后缀,其内容格式为键值对(key=value)。Java的JDK提供了java.util.Properties类,用于读取和写入这些配置文件。

读取properties配置文件

要读取properties配置文件,可以使用Properties类的load()方法。这个方法从输入流中读取属性列表(键和元素对)。例如,以下代码演示了如何读取一个名为config.properties的配置文件:

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;



public class PropertiesReader {

public void getPropertiesReader() {

Properties properties = new Properties();

InputStream inStream = getClass().getResourceAsStream("config.properties");

try {

properties.load(inStream);

properties.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));

} catch (IOException e) {

e.printStackTrace();

}

}

}

写入properties配置文件

要写入properties配置文件,可以使用Properties类的setProperty()方法将键值对保存到内存中,然后使用store()方法将这些键值对持久化到文件中。以下代码演示了如何将信息写入config.properties文件:

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.Properties;



public class PropertiesWriter {

public void writeProperties() {

Properties properties = new Properties();

try (OutputStream output = new FileOutputStream("config.properties")) {

properties.setProperty("color", "black");

properties.setProperty("animal", "rabbit");

properties.store(output, "Comment for properties file");

} catch (IOException e) {

e.printStackTrace();

}

}

}

properties配置文件的其他操作

除了基本的读写操作外,Properties类还提供了其他方法,如getProperty()用于获取指定键的值,propertyNames()用于获取所有键的枚举,以及clear()用于清除所有加载的键值对。

在Spring框架中,可以通过<context:property-placeholder>标签或PropertyPlaceholderConfigurer类来加载properties配置文件,使得配置信息可以在Spring容器中使用。

示例代码

以下是一个完整的示例,展示了如何使用Properties类来读取和写入properties配置文件:

import org.junit.Test;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;



public class PropertiesTest {

@Test

public void testReadProperties() throws IOException {

try (InputStream inputStream = new FileInputStream("config.properties")) {

Properties properties = new Properties();

properties.load(inputStream);

properties.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));

}

}

}

在实际应用中,properties配置文件提供了一种灵活且方便的方式来管理应用程序的配置信息。通过Properties类的各种方法,可以轻松地读取、写入和管理这些配置信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车免拆诊断案例 | 2013款宝马116i车偶尔加速不良

故障现象  一辆2013款宝马116i车&#xff0c;搭载N13B16A 发动机&#xff0c;累计行驶里程约为12.1万km。车主反映&#xff0c;该车行驶中偶尔加速无反应&#xff0c;且发动机故障灯异常点亮。 故障诊断 接车后试车&#xff0c;故障现象无法再现。用故障检测仪检测&#xff…

ChatGPT国内中文版镜像网站整理合集(2024/10/06)

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1&#xff0c;支持MJ绘画 ② chat.lify.vip 支持通用全模型&#xff0c;支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4&#xff0c;4o以及MJ绘画 1. 什么是镜像站 镜像站&#xff08;Mirror Site&#xff…

A股知识答题pk小程序怎么做?

A股知识答题pk小程序怎么做&#xff1f;以下是制作A股知识答题PK小程序的一般步骤&#xff1a; 一、 需求分析与规划&#xff1a; 明确目标&#xff1a;确定小程序的主要目标&#xff0c;比如是为了帮助用户学习A股知识、进行趣味竞赛&#xff0c;还是作为金融教育工具等。 …

2024年【金属非金属矿山(露天矿山)安全管理人员】考试题库及金属非金属矿山(露天矿山)安全管理人员实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试题库为正在备考金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的金属非…

基于IDEA+SpringBoot+Vue+Uniapp的投票评选小程序系统的详细设计和实现

2. 详细视频演示 文章底部名片&#xff0c;联系我获取更详细的演示视频 3. 论文参考 4. 项目运行截图 代码运行效果图 代码运行效果图 代码运行效果图 代码运行效果图 代码运行效果图 5. 技术框架 5.1 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框…

Spring Cloud Stream 3.x+kafka 3.8整合

Spring Cloud Stream 3.xkafka 3.8整合&#xff0c;文末有完整项目链接 前言一、如何看官方文档(有深入了解需求的人)二、kafka的安装tar包安装docker安装 三、代码中集成创建一个测试topic&#xff1a;testproducer代码producer配置&#xff08;配置的格式&#xff0c;上篇文章…

【机器学习】逻辑回归|分类问题评估|混淆矩阵|ROC曲线|AUC指标 介绍及案例代码实现

文章目录 逻辑回归逻辑回归简介逻辑回归的数学基础逻辑回归原理概念损失函数 逻辑回归API函数和案例案例癌症分类预测 分类问题评估混淆矩阵分类评估方法 - 精确率 召回率 F1ROC曲线 AUC指标案例AUC 计算的API分类评估报告api 电信客户流失预测案例 逻辑回归 逻辑回归简介 ​…

matlab不小心删除怎么撤回

预设项——>删除文件——>移动至临时文件夹 tem临时文件夹下

SwiftUI 6.0(iOS 18)新增的网格渐变色 MeshGradient 解惑

概述 在 SwiftUI 中&#xff0c;我们可以借助渐变色&#xff08;Gradient&#xff09;来实现更加灵动多彩的着色效果。从 SwiftUI 6.0 开始&#xff0c;苹果增加了全新的网格渐变色让我们对其有了更自由的定制度。 因为 gif 格式图片自身的显示能力有限&#xff0c;所以上面的…

【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍

文章目录 0. 前言1. GMSL技术概述2. 为什么需要SerDes&#xff1f;3. GMSL技术特点4.自动驾驶汽车中的应用5. 结论 0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见解及成果&#xff0c;但是内容可能存在不准…

六西格玛黑带项目:TBX-02无人机飞行稳定性提升——张驰咨询

一、项目背景与问题定义 TBX-02是该公司最新发布的消费级无人机&#xff0c;面向摄影爱好者和户外探险者。产品上市后&#xff0c;通过客户反馈和实际测试数据发现&#xff0c;该无人机在复杂飞行环境中&#xff0c;如强风或快速移动时&#xff0c;存在明显的飞行抖动和稳定性…

RabbitMQ初识

目录 Kafka RocketMQ RabbitMQ MQ界面(它使用的端口号5672&#xff0c;界面是15672&#xff09; 如何添加一个虚拟机&#xff0c;点击右侧 Topics&#xff08;通配符模式&#xff09; 发布确认机制 持久性(可靠性保证的机制之一) JDK17,Linux服务器Ubuntu 什么是MQ 实…

前端开发笔记--html 黑马程序员2

文章目录 前端常用标签一、标题标签二、段落标签和换行标签和水平线标签三、文本格式化标签![请添加图片描述](https://i-blog.csdnimg.cn/direct/87583fa23fe04229b016912051f3fc45.png)四、盒子标签五、图像标签六、连接标签七、注释和特殊字符 八、表格标签的基本使用九、列…

48 Redis

48 Redis 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操…

数据结构-5.6.二叉树的先,中,后序遍历

一.遍历&#xff1a; 二.二叉树的遍历&#xff1a;利用了递归操作 1.简介&#xff1a; 二叉树的先序遍历&#xff0c;中序遍历&#xff0c;后序遍历都是以根结点遍历顺序为准的&#xff0c;如先序遍历就先遍历根结点 2.实例&#xff1a; 例一&#xff1a; 例二&#xff1a; …

HarmonyOS NEXT应用开发实战(二、封装比UniApp和小程序更简单好用的网络库)

网络访问接口&#xff0c;使用频次最高。之前习惯了uniapp下的网络接口风格&#xff0c;使用起来贼简单方便。转战到鸿蒙上后&#xff0c;原始网络接口写着真累啊&#xff01;目标让鸿蒙上网络接口使用&#xff0c;简单程度比肩uniapp&#xff0c;比Axios更轻量级。源码量也不多…

JUC并发编程进阶1:线程基础知识复习

1 从start一个线程说起 在 Java 中&#xff0c;Thread 类是用于创建和管理线程的核心类。通过调用 Thread 类的 start() 方法&#xff0c;可以启动一个新的线程&#xff0c;并执行线程的 run() 方法。下面我们来详细分析一下 start() 方法的实现。 1.1 代码示例 首先&#x…

前端开发笔记--html 黑马程序员1

文章目录 前端开发工具--VsCode前端开发基础语法VsCode优秀插件Chinese --中文插件Auto Rename Tag --自动重命名插件open in browserOpen in Default BrowserOpen in Other Browser Live Server -- 实时预览 前端开发工具–VsCode 轻量级与快速启动 快速加载&#xff1a;VSCo…

大数据毕业设计选题推荐-音乐数据分析系统-音乐推荐系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

ansible自动化运维,一些基础命令、更方便掌握ansible。

1.先准备三台机子&#xff0c;一台ansible服务端、和两台客户端&#xff0c;配置客户端主机名、cinder和compute。 192.168.10.202ansible客户端192.168.10.56cinder客户端192.168.10.55compute客户端 2.下载ansible&#xff08;客户端&#xff09;,准备repo文件。 #编写文件…