SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类

这篇具有很好参考价值的文章主要介绍了SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.配置文件格式(3种)

例:修改服务器端口。(3种)

src/main/resources/application.properties

server.port=80

 src/main/resources/application.yml(主要用这种)

server:
  port: 80

  src/main/resources/application.yaml

server:
  port: 80

SpringBoot配置文件加载优先级:/application.properties > application.yml > application.yaml

2.yaml数据格式

yaml,一种数据序列化格式。

优点:容易阅读、以数据为中心,重数据轻格式。

yam文件扩展名:.yml(主流)、.yaml 

语法规则:
大小写敏感
属性值前面添加空格。(空格和冒号要隔开)
# 表示注释

数组格式:

enterprise:
  name: abc
  age: 16
  tel: 111111
  subject:
    - Java
    - C
    - C++

3.yaml数据读取方式(3种)

application.yml

lesson: SpringBoot

server:
  port: 80

enterprise:
  name: abc
  age: 16
  tel: 111111
  subject:
    - Java
    - C
    - C++

controller/BookController.java 有下面三种写法

① @Value(直接读取)

package com.example.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {

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

    @Value("${server.port}")
    private Integer port;

    @Value("${enterprise.subject[0]}")
    private String subject_0;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id) {
        System.out.println(lesson);
        System.out.println(port);
        System.out.println(subject_0);
        return "hello, spring boot!";
    }
}

② Environmet(封装后读取)

package com.example.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {
    
    @Autowired
    private Environment environment;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id) {
        System.out.println(environment.getProperty("lesson"));
        System.out.println(environment.getProperty("server.port"));
        System.out.println(environment.getProperty("enterprise.age"));
        System.out.println(environment.getProperty("enterprise.subject[1]"));
        return "hello, spring boot!";
    }
}

③ 实体类封装属性(封装后读取)

package com.example.controller;

import com.example.domain.Enterprise;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {

    @Autowired
    private Enterprise enterprise;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id) {
        System.out.println(enterprise);
        return "hello, spring boot!";
    }
}

需要额外封装一个类domain/enterprise.java

package com.example.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;

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

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

    public void setTel(String tel) {
        this.tel = tel;
    }

    public void setSubject(String[] subject) {
        this.subject = subject;
    }

    @Override
    public String toString() {
        return "Enterprise{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", tel='" + tel + '\'' +
                ", subject=" + Arrays.toString(subject) +
                '}';
    }
}

pom.xml也需要额外添加一个依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

4.多环境开发配置

resources/application.xml

spring:
  profiles:
    active: pro

---
# 开发
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 80

---
# 生产
spring:
  config:
    activate:
      on-profile: pro
server:
  port: 81

---
# 测试
spring:
  config:
    activate:
      on-profile: test
server:
  port: 82

5.使用命令行启动多环境

java -jar xxx.jar --spring.profiles.active=test --server.port=88 

参数加载的优先顺序可以从官网获得:Core Features

6.Maven与SpringBoot关联操作

在开发中,关于环境配置,应该以Maven为主,SpringBoot为辅。

①Maven中设置多环境属性

pom.xml 

  <profiles>
		<profile>
			<id>dev</id>
			<properties>
				<profile.active>dev</profile.active>
			</properties>
		</profile>
		<profile>
			<id>pro</id>
			<properties>
				<profile.active>pro</profile.active>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>test</id>
			<properties>
				<profile.active>test</profile.active>
			</properties>
		</profile>
	</profiles>

使用插件对资源文件开启对默认占位符的解析 

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>3.3.1</version>
  <configuration>
    <encoding>UTF-8</encoding>
    <useDefaultDelimiters>true</useDefaultDelimiters>
  </configuration>
</plugin>

②SpringBoot引入Maven属性

application.yml 

spring:
  profiles:
    active: ${profile.active}

---
# 开发
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 80

---
# 生产
spring:
  config:
    activate:
      on-profile: pro
server:
  port: 81

---
# 测试
spring:
  config:
    activate:
      on-profile: test
server:
  port: 82

③Maven打包,进行测试

SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类,SSM,spring boot,后端,java,yml,yaml,maven
SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类,SSM,spring boot,后端,java,yml,yaml,maven

7.配置文件分类

SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类,SSM,spring boot,后端,java,yml,yaml,maven文章来源地址https://www.toymoban.com/news/detail-674556.html

到了这里,关于SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • JavaEE进阶(6)SpringBoot 配置文件(作用、格式、properties配置文件说明、yml配置文件说明、验证码案例)

    接上次博客:JavaEE进阶(5)Spring IoCDI:入门、IoC介绍、IoC详解(两种主要IoC容器实现、IoC和DI对对象的管理、Bean存储、方法注解 @Bean)、DI详解:注入方式、总结-CSDN博客 目录 配置文件作用 SpringBoot配置文件  配置文件的格式 properties 配置文件说明 properties 基本语法 读取配置

    2024年01月23日
    浏览(63)
  • 【SpringBoot】两种配置文件, 详解 properties 和 yml 的语法格式, 使用方式, 读取配置

    各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等 📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议

    2024年02月10日
    浏览(52)
  • springboot--多环境配置快速切换开发、测试、生产环境

    环境隔离能力,快速切换开发、测试、生产环境 步骤: 1、标识环境:指定那些组件、配置在那个生效 2、切换环境:这个环境对应的所有组件和配置就应该生效 区分出几个环境:dev(开发环境)、test(测试i环境)、prod(生产环境)、default(默认环境) 指定每个组件在那个环境

    2024年02月06日
    浏览(72)
  • 【Springboot】yaml配置文件&多环境切换

    关于配置文件的详细说明可以看官方文档: 24. Externalized Configuration 以下是个人学习过程中的笔记,如有错误,请多指教! 目录 (一)配置文件 (二)yaml的概述及基本使用         yaml基本语法 (三)注入配置文件的三种方式 (四)yaml配置文件位置 (五)多环境切换

    2024年02月06日
    浏览(39)
  • springBoot 启动指定配置文件环境多种方案

    springBoot 启动指定配置文件环境理论上是有多种方案的,一般都是结合我们的实际业务选择不同的方案,比如,有pom.xml文件指定、maven命令行指定、配置文件指定、启动jar包时指定等方案,今天我们一一分享一下,以供参考: 1、pom文件配置方案 对应的配置文件举例: 也可以

    2024年02月11日
    浏览(51)
  • SpringBoot之多环境开发多文件版本(yml文件)

    注:文件名结尾必须是“-环境名” 注:active属性值与配置文件名减号后面的名称对应 (1)主配置文件中设置公共配置(全局),如SpringMVC相关配置 (2)环境分类配置文件中常用于设置冲突属性(局部),如端口号,数据库相关配置

    2024年01月18日
    浏览(31)
  • 【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解

    之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot配置文件。接下来,我们逐步开始学习,本教程所有示例

    2024年02月03日
    浏览(36)
  • IDEA下SpringBoot指定环境、配置文件启动

    Springboot项目有如下配置文件 主配置文件application.yml, 测试环境:application-test.yml 生产环境:application-pro.yml 开发环境:application-dev.yml 需要确保项目已经打成jar包: springboot-demo.jar,指定项目内其它配置文件application-dev.yml启动项目 1.3.Linux服务器上启动基于(三)的springboot项目

    2024年02月11日
    浏览(49)
  • python爬虫入门(1)-开发环境配置

          所谓的爬虫,就是通过模拟点击浏览器发送网络请求,接收站点请求响应,获取互联网信息的一组自动化程序。 也就是,只要浏览器(客户端)能做的事情,爬虫都能够做。       现在的互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。

    2024年02月08日
    浏览(43)
  • java springboot yml文件配置 多环境yml

    如果是properties改用yml,直接新增一个 .yml ,删除原 .properties ,系统会自动扫描 application.properties 和 application.yml文件(如果同时存在两个文件,则会优先使用.properties文件?)。 注意:改了之后 需要maven 命令 clean一下 ,清个缓存。 一、yml多环境 如果需要配置多环境的配置

    2024年02月15日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包