【Spring框架全系列】SpringBoot配置文件相关操作

这篇具有很好参考价值的文章主要介绍了【Spring框架全系列】SpringBoot配置文件相关操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌇哈喽,大家好,我是小浪。上篇博客我们已经学习了如何创建一个Spring项目,那么创建Spirng项目还可以直接通过在Spring官网的方式来创建,做法也非常的简单,感兴趣的小伙伴可以在C站搜个教程尝试一下;那么,今天我们就来学习SpringBoot如何配置文件;💡💡

📲目录

一、为什么要配置文件,配置文件的作用?

二、SpringBoot配置文件的方法

二、SpringBoot配置文件的格式

一、properties

二、yml

三、读取配置文件

1、properties

2、yml

3、配置对象


一、为什么要配置文件,配置文件的作用?

🍧因为:整个项目中所有重要的数据都是在配置⽂件中配置的,⽐如:
🚅1、数据库的连接信息(包含⽤户名和密码的设置);
🚄2、项目的启动端口;
🚂3、第三方系统的调⽤秘钥等信息;
🚝4、用于发现和定位问题的普通⽇志和异常⽇志等。
🛰想象⼀下如果没有配置信息,那么 Spring Boot 项目就不能连接和操作数据库,甚⾄是不能保存可以用于排查问题的关键⽇志,所以配置⽂件的作用是⾮常重要的;
【Spring框架全系列】SpringBoot配置文件相关操作

二、SpringBoot配置文件的方法

1、系统使用的配置文件,如端口号的设置,连接数据库的配置。

2、用户自定义的配置文件。

二、SpringBoot配置文件的格式

一、properties

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

1、当我们没有设置配置文件的时候,我们的SpringBoot默认启动的端口号是8080;

【Spring框架全系列】SpringBoot配置文件相关操作

2 、当我们通过properties来设置一个端口号时,我们启动springboot项目来观察一下;

2.1在resources目录下新建一个文件applications.properties;

【Spring框架全系列】SpringBoot配置文件相关操作

2.2这里我们可以自己设置任意一个端口号,比如我们给个8888;

server.port=8888

再次运行观察结果:

【Spring框架全系列】SpringBoot配置文件相关操作

结果可以看到,我们自己设置的端口号生效了;

那么如何访问到呢?

我们之前在demo包下面新建了一个TestController类,内容如下:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@Controller//当前类是控制器
@ResponseBody//返回的是数据,而非页面
public class TestController {

    @RequestMapping("/hello")//url路由注册
    public String sayHi(String name){

        if(!StringUtils.hasLength(name)){
            name = "SpringBoot";
        }
        return "hello"+ name;
    }
}

这个时候我们就可以通过浏览器来访问,在浏览器中输入以下内容:

http://localhost:8888/hello

按下回车,观察运行结果:

【Spring框架全系列】SpringBoot配置文件相关操作

二、yml

1、yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是 “另⼀种标记语言”。

yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空 格的方式组成的,其中的空格不可省略;

2、首先还是在resources目录下新建一个yml文件,格式如下:

【Spring框架全系列】SpringBoot配置文件相关操作

yml文件代码如下,我们来测试一下新设置的端口号是否生效;

【Spring框架全系列】SpringBoot配置文件相关操作

3、在浏览器输入:http://localhost:7777/hello 按下回车,看运行结果;

【Spring框架全系列】SpringBoot配置文件相关操作

结果依然是没有问题;

注:理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项目中时,如果配置⽂件中出现了同样的配置,比如 properties 和 yml 中都配置“server.port”, 那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最高,但加载完 .properties ⽂件之后,也会加载 .yml 文件的配置信息。

三、读取配置文件

1、properties

如果在项⽬中,想要主动的读取配置文件中的内容,可以使用 @Value 注解来实现。
@Value 注解使用“${}”的格式读取;
application.yml文件代码如下:
server:
  port: 7777
  #自定义配置项
mytest: 小黑

TestController:

package com.example.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@Controller//当前类是控制器
@ResponseBody//返回的是数据,而非页面
public class TestController {

    @Value("${mytest}")
    private String mytest;


    @RequestMapping("/hello")//url路由注册
    public String sayHi(String name){

        if(!StringUtils.hasLength(name)){
            name = "SpringBoot";
        }
        return "hello"+ name;
    }

    @RequestMapping("/getconf")
    public String getconf(){
        return mytest;
    }
}

首先启动springboot类,启动成功后,再去浏览器访问对应的地址;

【Spring框架全系列】SpringBoot配置文件相关操作

浏览器输入以下内容:http://localhost:7777/getconf  按下回车:

【Spring框架全系列】SpringBoot配置文件相关操作

2、yml

2.1 value值加单双引号;

application.yml文件写入以下内容:

#字符串
myStirng1: 哈喽\n呀
myStirng2: '哈喽\n呀'
myStirng3: "哈喽\n呀"

TestController类中代码:

    @Value("${myString1}")
    private String myString1;

    @Value("${myString2}")
    private String myString2;

    @Value("${myString3}")
    private String myString3;

    @PostConstruct
    public void PostConstruct(){
        System.out.println("myString1"+myString1);
        System.out.println("myString2"+myString2);
        System.out.println("myString3"+myString3);
    }

启动springboot项目,观察结果;

得以下结论:

1、字符串默认不用加上单引号或者双引号。
2、单引号不会转义特殊字符,特殊字符最终只是⼀个普通的字符串数据。
3、双引号会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思。

3、配置对象

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

student:
  id: 1
  name: zhangsan
  age: 18

还可以使用行内写法,将对象中的属性写到一行,不用另起很多行;

student1: {id: 1,name: zhangsan,age: 20}

那么读取对象的话就不能使用注解@Value了,需要用到另外一个注解@ConfigurationProperties 来读取;

在demo包下新建一个类Student:

package com.example.demo;

import lombok.Data;
import lombok.NonNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

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

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Student(int id, @NonNull String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

TestController中代码:

    @Component
    public class ReadYml2 {
        @Autowired
        private Student student;
        @PostConstruct
        public void postConstruct() {
            System.out.println(student);
        }
    }

运行结果:【Spring框架全系列】SpringBoot配置文件相关操作

⏳注意:1、学生类Student使用@ConfigurationProperties("student")这个注解,并且注解后面的对象名必须和配置文件中的一致;

⌛️2、实体类的属性名必须和配置中的key保持一致,并且提供getter和setter方法;

🌃OK,今天的学习内容就到这里啦,喜欢的小伙伴可以三连一下,订阅本专栏,以便于及时收到更新信息,感谢阅读,我们下期再见!!🔦🔦文章来源地址https://www.toymoban.com/news/detail-447610.html

到了这里,关于【Spring框架全系列】SpringBoot配置文件相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring框架全系列】方法注解@Bean的使用

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了五大类注解的使用方法,以及如何解决Spring使用五大类注解生成bean-Name的问题;那么,谈到如何更简单的读取和存储对象,这里我们还需要介绍另外一个\\\"方法注解@Bean\\\"的使用,快来一起学习叭!🛳🛳 📲目录 一、如何使

    2024年02月04日
    浏览(36)
  • 【Spring框架全系列】Spring更简单的读取和存储对象

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了如何创建一个spring项目,并且如何的存、取对象,介绍了相关方法,那么本篇博客将接着上篇博客的内容介绍如何更加简单的读取和存储对象。 🌃在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接

    2024年02月05日
    浏览(33)
  • FreeRTOS 全系列笔记——基于V10.4

    基于crotex-m处理器新建FreeRTOS工程 为什么使用嵌入式实时操作系统(RTOS) FreeRTOS——创建任务 FreeRTOS的任务调度和管理 FreeRTOS-内核链表数据结构 FreeRTOS-内核对时间的测量 FreeRTOS-内核中的钩子(Hook)函数 FreeRTOS-软件定时器的使用 FreeRTOS-软件定时器的实现原理 FreeRTOS-延后执行机制

    2024年02月04日
    浏览(32)
  • Radware负载均衡-全系列产品证书更新(二)

    简单介绍一下关于Radware APSolute Vision平台的证书更新。 更新证书有两种方式,一种为自签发,另外一种为导入第三方证书,且更新证书仅能通过命令行的形式更新证书。两种方式都会导致APSolute Vision平台设备的重启(老版本,最新版本只会导致当前访问vision会话中断),请注

    2024年01月16日
    浏览(43)
  • 小米红米全系列官方原厂预装系统

    小米红米全系列官方原厂预装系统恢复镜像 1.全系列为原厂预装恢复镜像系统,专机专用 2.自带原机所有驱动,主题,Logo,Office等,再次恢复原厂 链接: https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd=8888 3.支持型号如下: Xiaomi Book 12.4 二合一 Xiaomi Book Air 13 Redmi G (Pro) 游戏本 2022 锐

    2024年02月11日
    浏览(41)
  • 云安全系列4:解析云安全工具集

    随着组织越来越多地将数据和应用转移到云端,云安全在确保工作负载安全方面变得至关重要。Gartener 就表示:“云优先战略现在已十分普遍,甚至在不愿承担风险的企业机构中也是如此。但由于缺乏确保安全云计算部署所必需的技能和工具,因此执行仍然受到阻碍。” 在了

    2024年02月02日
    浏览(38)
  • 【云安全系列】Seccomp—云安全syscall防护利器

    Seccomp(全称 “Secure computing”),早在 2.6.12 版本(2005年3月8日)就引入到内核中,是通过只允许内核支持部分 syscall(系统调用),或者拒绝内核认为可能有危险的 syscall 集合的方式,来限制一个进程所支持的 syscall调用。最初,Seccomp 只允许使用read、 write、 _exit、sigreturn

    2024年02月08日
    浏览(35)
  • Oracle全系列版本官网下载保姆及教程

    下面以下载Oracle12cR2为例说明下载的整个过程。 基本步骤如下: 先注册一个Oracle账号并登录; 进入到客户下载页面搜索要下载的数据库版本; 得到Oracle下载器(Oracle_SSN_DML_xxxxx.exe),注意:每下载一次都会得到一个Oracle的下载器; 运行下载器进行下载 官网地址:https://www.or

    2024年01月17日
    浏览(45)
  • 苹果发布会:iPhone 15全系列手机正式发布

    在人们的高度关注和热切期待中,苹果公司在北京时间9月13日凌晨1点,准时举办了秋季新品发布会,并如期发布了iPhone 15系列。此次发布会以“好奇心上头”为主题,吸引了全球消费者和科技爱好者的目光。 在发布会上,苹果公司向全球观众展示了iPhone 15系列的手机,iPho

    2024年02月09日
    浏览(56)
  • 【Intel/Altera】 全系列FPGA最新汇总说明,持续更新中

            2023年11月14日英特尔 FPGA中国技术日, Intel刚发布了新的FPGA系列 ,官网信息太多,我这里结合以前的信息, 简单汇总更新一下,方便大家快速了解Intel/Altera FPGA家族。   目录 前言 Altera和Intel 型号汇总 1. Agilex 系列 1.1英特尔® Agilex™ 7 FPGA 和 SoC FPGA 1.2英特尔® Ag

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包