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