Springboot从入门到起飞-【day01】

news2024/11/25 4:26:26

 个人主页→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类的各种方法,可以轻松地读取、写入和管理这些配置信息。

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

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

相关文章

kafka消息队列核心内容及常见问题

目录 1. 使用消息队列的目的&#xff08;优点与缺点&#xff09; 2. 常见各消息队列对比 3. kafka介绍 3.1 kafka简介 3.2 kafka特点 3.3 kafka系统架构 3.4 设置数据可靠性 3.4.1 Topic 分区副本 3.4.2 消息确认机制 4. 常见问题&#xff08;面试题&#xff09; 4.…

Springboot 接入 WebSocket 实战

Springboot 接入 WebSocket 实战 前言&#xff1a; WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 简单理解&#xff1a; 1&#xff0c;常见开发过程中我们知道 Http协议&#xff0c;客户端…

LED显示器闪烁故障原因及解决方法

随着电子显示屏在各行各业的广泛应用&#xff0c;LED显示器因其高亮度、节能和灵活的宣传功能&#xff0c;成为了宣传推广的重要工具。然而&#xff0c;LED显示器在使用过程中有时会出现闪烁的现象&#xff0c;这不仅影响了显示效果&#xff0c;还可能影响用户体验。针对这一问…

【layui】多文件上传组件实现

插件预览效果&#xff1a; 需要引入layui的脚本文件layui.js和样式文件layui.css html代码&#xff1a; <div class"layui-input-block"><div class"layui-upload-list"><table class"layui-table"><colgroup><col…

18936 手串

### 思路 1. **输入处理**&#xff1a;读取输入的n, m, c&#xff0c;以及每个串珠的颜色信息。 2. **颜色位置记录**&#xff1a;使用一个字典来记录每种颜色出现的位置。 3. **检查颜色分布**&#xff1a;遍历每种颜色&#xff0c;检查其在任意连续m个串珠中是否出现超过一次…

【Flask】Flask数据库

【Flask】Flask数据库 1.概述2.使用Flask-SQLAlchemy管理数据库3.定义模型4.关系5.数据库操作创建表插入行修改行删除行查询行 1.概述 大多数的数据库引擎都有对应的 Python 包&#xff0c;包括开源包和商业包。Flask 并不限制你使用何种类型的数据库包&#xff0c;因此可以根…

Java体系中的泛型

1. 泛型 一般的类和方法&#xff0c;只能够使用基本类型&#xff0c;要么是自定义的类&#xff0c;如果要编写可以应用于多种数据类型的代码&#xff0c;这种刻板的限制对代码的约束就会很大&#xff0c;那么如何实现可应用于多种数据类型的代码&#xff0c;而不局限于单一一种…

第5篇:DDOS病毒----应急响应之Linux实战篇

现象描述 某服务器网络资源异常,感染该木马病毒的服务器会占用网络带宽&#xff0c;甚至影响网络业务正常应用。 系统分析 针对日志服务器病毒事件排查情况&#xff1a; 在开机启动项/etc/rc.d/rc.local发现可疑的sh.sh脚本&#xff0c;进一步跟踪sh.sh脚本,这是一个检测病毒…

C++从入门到起飞之——AVL树 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1. AVL的概念 2. AVL树的实现 2.1 AVL树的结构 2.2 AVL树的插⼊ >AVL树插⼊⼀个值的⼤概过程 &…

Rocky linux 修改ip地址, rocky服务器修改静态地址, rocky虚拟机修改ip

1. 更新yum yum update 2. 安装ifconfig yum install net-tools 3. 修改配置 vi /etc/NetworkManager/system-connections/ens33.nmconnection 将ipv4内容修改如下&#xff1a; # 自动改为手动 methodmanual # 网关为vm ware 查看网关地址 address你想改为的ip/24,网关 #dns不…

Qml 分组动画(二) 动画嵌套(自学笔记)

分组动画嵌套示例&#xff0c;直接看效果&#xff0c; 做一个踢足球的示例 下面两个Rectangle 制作渐变的天空和大地 下面这个Rectangle 用于放置足球图片&#xff0c; 由于足球图片直接从网上下载的 没有找到合适大小的图片 &#xff0c;所以用 一个矩形框作限制&#xff0c;…

闲谈Promise

预备知识 回调函数&#xff1a;当一个函数作为参数传入另一个函数中&#xff0c;并且它不会立刻执行&#xff0c;当满足一定条件之后&#xff0c;才会执行&#xff0c;这种函数称为回调函数。比如&#xff1a;定时器。异步任务&#xff1a;与之对应的概念是同步任务&#xff0…

【JVM】面试篇

1 什么是JVM&#xff1f; 1.1 定义 JVM 指的是Java虚拟机&#xff08; Java Virtual Machine &#xff09;。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件&#xff0c;Java虚拟机上可以运行Java、Kotlin、Scala、Groovy等语言。 启动这个程…

电子电气架构---软件定义汽车的新兴生态系统

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

【含文档】基于Springboot+Vue的校园体育器材管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

C++ : STL容器之vector剖析

STL容器之vector剖析 一、构造函数与赋值&#xff08;一&#xff09;默认构造&#xff08;二&#xff09;拷贝构造&#xff08;三&#xff09;几个相同值构造&#xff08;四&#xff09;迭代器构造&#xff08;五&#xff09;initializer_list 构造&#xff08;六&#xff09;赋…

网络编程(19)——C++使用asio协程实现并发服务器

十九、day19 上一节学习了如果通过asio协程实现一个简单的并发服务器demo&#xff08;官方案例&#xff09;&#xff0c;今天学习如何通过asio协程搭建一个比较完整的并发服务器。 主要实现了AsioIOServicePool线程池、逻辑层LogicSystem、粘包处理、接收协程、发送队列、网络…

C语言入门:打开编程世界的大门

一.C语言是什么 在我们生活中&#xff0c;我们在交流时候使用的就是语言&#xff0c;在这个世界上有许多的国家、民族&#xff0c;自然也有很多语言如&#xff1a;汉语、英语、法语等等&#xff0c;这种人与人交流使用的语言我们称为自然语言。然而计算机并不能理解我们的语言…

github下载文件的两种方式(非git形式)

1.以下面的图为例 &#xff0c;可以直接点击右上方的绿色Code按键&#xff0c;在弹出的列表中选择Download Zip选项&#xff0c;即可下载。 2.如果下载的是单独的某一个文件&#xff0c;则可以按照下图的格式点击下图所示的那个下载的图标即可。

【Linux系统编程】第三十一弹---深入理解静态库:从零开始制作与高效使用的完全指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、静态库 1.1、怎么做静态库 1.2、怎么使用静态库 1、静态库 1.1、怎么做静态库 在Linux环境下&#xff0c;通常使用GCC&am…