SpringBoot多环境下的配置文件的使用

SpringBoot多环境下的配置文件的使用,第1张

SpringBoot核心配置文件
    • 1. 多环境下的配置文件的使用——.properties
      • 1.1开发环境
      • 1.2测试环境
      • 1.3准生产环境
      • 1.4生产环境
      • 1.5SpringBoot主核心配置文件
    • 2. 多环境下的配置文件的使用——.yml(或.yaml)
      • 2.1开发环境
      • 2.2测试环境
      • 2.3生产环境
      • 2.4SpringBoot主核心配置文件
    • 3.获取自定义配置
      • 3.1一个一个获取@Value
      • 3.2 将自定义配置映射到一个对象@ConfigurationProperties(prefix = "school") //配置属性注解(必须配置前缀)
      • 3.3去掉红色的警告信息(这个爆红不影响程序的运行)

1. 多环境下的配置文件的使用——.properties 1.1开发环境

application-dev.properties

#开发环境配置文件
server.port=8080
server.servlet.context-path=/dev
1.2测试环境

application-test.properties

#测试环境的配置文件
server.port=8081
server.servlet.context-path=/test
1.3准生产环境

application-ready.properties

#准生产环境配置文件
server.port=8082
server.servlet.context-path=/ready
1.4生产环境

application-product.properties

#生产环境配置文件
server.port=9090
server.servlet.context-path=/product
1.5SpringBoot主核心配置文件

application.properties

#激活使用的配置文件
spring.profiles.active=dev

通过不同的环境去调用不同的环境配置文件

2. 多环境下的配置文件的使用——.yml(或.yaml) 2.1开发环境

application-dev.yml

#开发环境配置文件
server:
  port: 8080
  servlet:
    context-path: /dev
2.2测试环境

application-test.yml

#测试环境的配置文件
server:
  port: 8081
  servlet:
    context-path: /test
2.3生产环境

application-product.yml

#生产环境配置文件
server:
  port: 9090
  servlet:
    context-path: /product
2.4SpringBoot主核心配置文件

application.yml

#激活使用的配置文件
spring:
  profiles:
    active: dev

通过不同的环境去调用不同的环境配置文件

两种方式是一样的效果,只是通过不同的方式。

3.获取自定义配置

SpringBoot在核心配置文件application.properties自定义配置

3.1一个一个获取@Value

配置核心配置文件application.properties

#设置内嵌Tomcat端口号
server.port=8080
#设置上下文
server.servlet.context-path=/

school.name=guoguo
websit=http:/www.guoguo.com

读取自定义配置文件 @Value(“${key}”)

    //在核心配置文件中读取值
    @Value("${school.name}")  //大括号内是key的名字
    private String schoolname;
    @Value("${websit}")
    private String websit;
3.2 将自定义配置映射到一个对象@ConfigurationProperties(prefix = “school”) //配置属性注解(必须配置前缀)

使用对象去读取配置文件时,配置文件中的属性要有统一开头的前缀(前缀必须是统一的)

配置文件

application.properties

#设置内嵌Tomcat端口号
server.port=8080
#设置上下文
server.servlet.context-path=/

school.name=guoguo
school.websit=www.guoguo.com

abc.name=abc
abc.age=18

创建一个类(将配置中以school开头的配置信息映射到School这个类中)

School

package com.guo.springboot.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component //将此类交给Spring容器进行管理
@ConfigurationProperties(prefix = "school") //配置属性注解(必须配置前缀)
public class School {
    private String name;
    private String websit;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getWebsit() {
        return websit;
    }
    public void setWebsit(String websit) {
        this.websit = websit;
    }
}

创建一个类(将配置中以abc开头的配置信息映射到Abc这个类中)

Abc

package com.guo.springboot.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "abc")
public class Abc {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

创建一个类(测试是否能以对象的形式读取到配置文件)

IndexController

package com.guo.springboot.web;

import com.guo.springboot.config.Abc;
import com.guo.springboot.config.School;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {
    @Autowired
    private School school;   //注入对象
    @Autowired
    private Abc abc;
    @RequestMapping(value = "say")
    public @ResponseBody String say(){
        return "hello"+school.getName()+":"+school.getWebsit()
                +"===="+abc.getName()+":"+abc.getAge();
    }
}

成功读取到
helloguoguo:www.guoguo.com====abc:18

3.3去掉红色的警告信息(这个爆红不影响程序的运行)

在pom文件中加入如下内容

        <!--解决使用@ConfigurationProperties注解出现的警告问题-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/874501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存