【SpringBoot】有哪些优点+配置文件如何配置?

news2024/11/15 21:51:14

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE进阶 

Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发
的。Spring Boot是一个开源的Java框架,用于快速构建应用程序和微服务。它基于Spring Framework,通过自动化配置和约定优于配置的方式,使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件,包括嵌入式Web服务器、安全性、数据访问、缓存、测试和监控等,下面就来对SpringBoot项目中的相关配置文件来进行阐述~


目录

文章目录

一、SpringBoot的优点

二、SpringBoot配置文件

2.1 什么是配置文件

2.2 为什么需要配置文件

2.3 properties格式的配置文件

2.4 yml格式的配置文件

2.5 yml 配置不同类型及null:

2.6 yml配置对象

三、设置不同环境的配置文件

3.1 创建不同环境的配置文件:

3.2 在 application.properties或application.yml 中设置行环境


一、SpringBoot的优点

  1. 快速添加依赖,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
  2. 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
  3. 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
  4. 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
  5. ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
     

Spring Boot 项⽬有两个主要的⽬录:

  • src/main/java 为 Java 源代码。
  • src/main/resources 为静态资源或配置⽂件:
  • /static:静态资源⽂件夹;
  • /templates:模版资源⽂件夹
     

正确路径:

为了将Bean注入到SpringBoot容器中,要把注入到容器类的类和启动类放到同级目录下

这时候 Spring Boot 项⽬才能正常的将 bean 注⼊到容器中,以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定⼤于配置!!!

二、SpringBoot配置文件

2.1 什么是配置文件

配置文件是一种存储应用程序配置信息的文件,它包含了应用程序所需要的各种参数、选项和设置。SpringBoot配置文件是必须要存在的一个文件,用来配置SpringBoot应用程序的行为,可以使用多种配置文件格式,比如:properties、yml等。

2.2 为什么需要配置文件

整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:

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

想象⼀下如果没有配置信息,那么 Spring Boot 项⽬就不能连接和操作数据库,甚⾄是不能保存可以⽤于排查问题的关键⽇志,所以配置⽂件的作⽤是⾮常重要的。

Spinrg常见的配置文件有两种:.properties 和 .yml,理论上来说,允许两种格式的配置文件可以同时存在,但是在实际开发中,为了可以更好的维护并降低故障发生的概率,我们通常只使用其中一种格式的配置文件,需要特别注意的是,.properties 格式的配置的优先级大于 .yml 格式的配置文件,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。


2.3 properties格式的配置文件

properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,比如:

# 端口号设置
#server.port=8080
mytest=zhangsan
mytest2=zhangsan2

# 连接数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

那么,如何读取配置文件中的自定义配置信息呢?

若想要主动读取配置文件的信息,可以使用@Value 注解,该注解使用${} 格式读取,以下代码演示如何读取上述代码中的自定义配置项:

 

 从上述配置key看出,properties 配置⽂件中会有很多的冗余的信息,⽐如这些:

但是 .properties 格式对中文支持并不好,会出现乱码的情况,那么我们可以使用 .yml来解决这种问题~

2.4 yml格式的配置文件

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语
⾔”。
基本语法:yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略!!

server:
  port: 6060

# 自定义配置
mytest2: zhangsan2

# 配置数据库连接
spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
    username: root
    password: root

相较 properties,代码冗余度降低~ yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可。

 

2.5 yml 配置不同类型及null:

# 字符串
string.value: Hello

# 布尔值,true或false
boolean.value: true
boolean.value1: false

# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制

# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法

# Null,~代表null
null.value: ~

需要注意的是,字符串类型是否带有引号,读取出来是不一样的~~

string:
    str1: Hello \n Spring Boot.
    str2: 'Hello \n Spring Boot.'
    str3: "Hello \n Spring Boot."
@Component
public class ReadYml {
    @Value("${string.str1}")
    private String str1;

    @Value("${string.str2}")
    private String str2;

    @Value("${string.str3}")
    private String str3;
    
    @PostConstruct
    public void postConstruct() {
        System.out.println("string.str1:" + str1);
    System.out.println("string.str2:" + str2);
    System.out.println("string.str3:" + str3);
    }
}

从上述结果可以看出:

只有带有双引号的字符串,转义字符才能被正常解析。对于无引号和单引号的情况,转义字符没有变化的显示出来~

2.6 yml配置对象

我们还可以在 yml 中配置对象,如下配置:

student:
    id: 1
    name: Java
    age: 18

这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解@ConfigurationProperties 来读取

@Component
@ConfigurationProperties("student")
@Data
public class Student {
    private int id;
    private String name;
    private int age;
    
}

在以上代码中,getter、setter以及toString方法均通过lombok实现。需要注意的是@ConfigurationProperties注解中的内容,需要与配置文件中对象的key相同。

    @Autowired
    private Student student;

    @PostConstruct
    public void postConstruct(){
        System.out.println(student);
    }

想要查看 Spring Boot 更多系统配置项,访问官⽹:官网地址

三、设置不同环境的配置文件

3.1 创建不同环境的配置文件:

  • application-dev.properties
  • application-prod.properties
  • application-dev.yml
  • application-prod.yml
     

3.2 在 application.properties或application.yml 中设置行环境

# 配置数据库连接
spring:
  profiles:
    active: prod

SpringBoot就会自动在运行的时候,加载设置的相关配置文件~

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

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

相关文章

如何将文件写入数据库呢???(走过路过不要错过)

1.首先建立数据库。。。建立一个名为books的数据库,建立一个fs表。 create database if not exists books; use books; create table fs(id int unsigned auto_increment primary key ,name varchar(50) not null ,files longblob ); 假如你不喜欢代码建立&#x…

redux-promise-middleware和applyMiddleware的理解与使用

一、作用: applyMiddleware是一个中间件,通常和applyMiddleware结合使用,是dispatch与reducers之间的应用,用于处理dispatch发送的异步action操作 二、使用 1、安装redux-promise-middleware cnpm i redux-promise-middleware…

GB28181智能安全帽方案探究及技术实现

什么是智能安全帽?​ 智能安全帽是一种集成先进科技的安全帽,可基于GB28181规范,适用于铁路巡检、电力、石油化工等高风险行业的作业人员,以及消防、救援等紧急情况下的安全防护。 智能安全帽通常具有以下功能: 实时…

WEB开发的基础知识

WEB开发的基础知识 1、java SE 和 java EE 2、web开发的基本理念 3、URI和URL 4、http请求方式 5、get和post的区别 6、web开发行业术语

hdu Perfect square number

题意&#xff1a; 有n个数&#xff08;n<300&#xff09;&#xff0c;将其中的任意的一个数改为x&#xff08;x在[1,300]&#xff09;&#xff0c;求改之后&#xff0c;区间和为完全平方数的最大区间个数是多少 思路&#xff1a; 将a[x]改之后的区间个数等于&#xff1a;改…

ThinkPHP v6.0.8 CacheStore 反序列化漏洞

漏洞说明 1. 漏洞原理&#xff1a;ThinkPHP 6.0.8 CacheStore 会触发POP利用链子&#xff0c;造成任意命令执行 2. 组件描述&#xff1a; ThinkPHP是一个免费开源的&#xff0c;快速、简单的面向对象的轻量级PHP开发框架 3. 影响版本&#xff1a;V6.0.8 漏洞复现 1. 环境安…

【Linux命令200例】which用于查找指定命令所在路径

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜…

【C++】STL——queue的介绍和使用、queue的push和pop函数介绍和使用、queue的其他成员函数

文章目录 1.queue的介绍2.queue的使用2.1queue构造函数2.2queue的成员函数&#xff08;1&#xff09;empty() 检测队列是否为空&#xff0c;是返回true&#xff0c;否则返回false&#xff08;2&#xff09;size() 返回队列中有效元素的个数 &#xff08;3&#xff09;front() 返…

PHP从入门到精通—PHP开发入门-PHP概述、PHP开发环境搭建、PHP开发环境搭建、第一个PHP程序、PHP开发流程

每开始学习一门语言&#xff0c;都要了解这门语言和进行开发环境的搭建。同样&#xff0c;学生开始PHP学习之前&#xff0c;首先要了解这门语言的历史、语言优势等内容以及了解开发环境的搭建。 PHP概述 认识PHP PHP最初是由Rasmus Lerdorf于1994年为了维护个人网页而编写的一…

【C语言学习】数据类型转换

一、自动类型转换 1.当运算符两边的数据类型不同时&#xff0c;C语言会帮我们将其转换为较大的类型。即将数据转换成表达范围更大的类型。 将前一种类型转换为后一种类型 char --> short --> int --> long --> long long int --> float --> double2.对于…

数据结构:插入排序

直接插入排序 插入排序算法是所有排序方法中最简单的一种算法&#xff0c;其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中&#xff0c;最终得到的序列就是已经排序好的数据。 直接插入排序是插入排序算法中的一种&#xff0c;采用的方法是&#xff1a;在…

网盘共享文件的优势及对团队办公的帮助

伴随着科技的发展&#xff0c;互联网逐步渗透了企业办公方式。各种类型的网盘应运而生&#xff0c;成为当下文件共享的主要方式之一。那么网盘共享文件有什么优势&#xff1f;对团队办公有何帮助呢&#xff1f; 网盘共享文件的优势 1、方便快捷&#xff1a;用户通过移动设备即…

MYSQL进阶-事务

什么是数据库事务&#xff1f; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上 的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行。 事务最…

Vulnhub: hacksudo: aliens靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.175 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.175 目标80端口backup目录存在文件mysql.bak&#xff0c;下载后查看获得mysql账号密码 登录9000端口的phpmyadmin&#xf…

节日福利发什么?OI易问卷调查员工意见,“卷”赢其他公司

春节、妇女节、端午节、中秋节、元宵节、周年庆……近几年各公司之间的员工福利比拼“卷”上新高度&#xff0c;让HR、行政每逢佳节倍焦虑。 节日福利是表达公司对员工的关心和感谢&#xff0c;同时提高员工的归属感和满意度。礼品、购物券、节日慰问金、节日活动、食品饮料……

七牛云存储绑定域名

1、七牛云添加 加速域名方法&#xff1a; 注意&#xff1a;七牛云新增域名 需要 和 网站 解析的二级域名保持一致 其他值参考 如何绑定 使用七牛云托管视频&#xff0c;使用cdn加速

网工内推 | 云计算工程师专场,CCNP/HCIP认证优先

01 弧聚科技 招聘岗位&#xff1a;网络工程师&#xff08;云计算方向&#xff09; 职责描述&#xff1a; 1、作为H3C初级云计算交付工程资源培养对象&#xff0c;需配合完成相关华三产品及服务规范培训。 2、培训赋能后&#xff0c;安排到H3C云项目交付中进行项目交付及驻场支…

Java基础篇_1.5——程序流程控制之循环结构【包含各种图形练习】

1、循环结构 循环&#xff1a;java中的循环有 while / do-while / for 。循环结构的特点是给定的循环条件成立时&#xff0c;反复执行某段程序&#xff0c;直到循环条件不成立。 1.2 while循环 定义变量并赋初始值 while(循环条件){// 循环体&#xff0c;要改变循环变量 } 注意…

【计算机网络】应用层协议 -- DNS协议

文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式&#xff0c;来确定…

pygame示例滚动的气球

pygame示例滚动的气球 使用pygame实现一个滚动的气球。 import sys, pygame # 将有限的常量和函数集放入脚本的全局名称空间中 from pygame.locals import *# 初始化pygame模块 pygame.init() # 创建图形窗口&#xff0c;pygame把图形表示为Surface对象 size width, height …