Spring Boot配置 application.yml,根据application.yml选择启动配置

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Spring Boot配置 application.yml,根据application.yml选择启动配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在Spring Boot 中可以选择applicant.properties 作为配置文件,也可以通过在application.yml中进行配置,让Spring Boot根据你的选择进行加载启动配置文件。

这种配置方式,我们通常在实际开发中经常使用,主要为了发布版本和以及开发环境,本地环境,测试环境等不同环境使用不同的配置文件,这样就减少了我们经常去配置application.yml的相关具体配置,因为不同的配置文件里边的ip地址或者数据库的链接以及端口不同,干过开发的都知道,我们一般会将数据库的访问地址,账号,密码,Redis的访问地址等均放到application.yml文件中。

开始,我们在Spring Boot中创建一个启动类文件

@SpringBootApplication
public class Chapter12Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter12Application.class, args);
    }

    @RestController
    static class HelloController {

		//指定配置文件读取name并获得配置文件的值
        @Value("${name:}")
        private String name;

		//浏览器根据地址访问得到相关name
        @RequestMapping("/")
        public String index() {
            return name;
        }
    }
}

创建一个application.yml文件存放到src/resources,目录下:

# 默认激活dev配置,选择启动配置文件,实际上均采用active读取
spring:
  profiles:
    active: "test"

---
# 指定的配置文件
spring:
  config:
    activate:
      on-profile: "dev"

# 读取的name文件
name: dev.Miaow.Y.Hu.com
#启动端口号配置
server:
  port: 7745
---

spring:
  config:
    activate:
      on-profile: "test"

name: test.Miaow.Y.Hu.com
server:
  port: 7745
---

spring:
  config:
    activate:
      on-profile: "prod"
server:
  port: 7745

name: prod.Miaow.Y.Hu.com

Spring Boot 2.4 以后的配置

好,有了上边对application.yml的相关基础,接下来我们在一个application.yml进行相关配置,然后根据相关配置启动我们需要的配置文件,然后得到我们想要的name.

依旧是Spring Boot 的启动文件

@SpringBootApplication
public class Chapter13Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter13Application.class, args);
    }

    @Slf4j
    @RestController
    static class HelloController {

        @Value("${db:}")
        private String db;

        @Value("${mq:}")
        private String mq;

        @RequestMapping("/")
        public String index() {
            log.info("db:" + db);
            log.info("mq:" + mq);
            return db + "===" + mq;
        }

    }

}

依旧是如此,我们可以在pom.xml先配置我们所需要的依赖:

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

接下来我们还是将重点放到我们的application.yml配置文件上:

# 2.4之前的配置
#spring:
#  profiles:
#    active: "dev"
#
#---
#spring.profiles: "dev"
#spring.profiles.include: "dev-db,dev-mq"
#
#---
#spring.profiles: "dev-db"
#
#db: dev-db.Miaow.Y.Hu.com
#
#---
#spring.profiles: "dev-mq"
#
#mq: dev-mq.Miaow.Y.Hu.com
#
#---

#2.4之后的配置
# 默认激活dev配置
spring:
  profiles:
  # 更改指定的启动配置文件
    active: "dev" 
    group:
    # 分组,只要你确定定义的别名满足条件,那么就适配
      "dev": "dev-db,dev-mq"
      "prod": "prod-db,prod-mq"

---
spring:
  config:
    activate:
      on-profile: "dev-db"

db: dev-db.Miaow.Y.Hu.com

---
spring:
  config:
    activate:
      on-profile: "dev-mq"

mq: dev-mq.Miaow.Y.Hu.com

---
spring:
  config:
    activate:
      on-profile: "prod-db"

db: prod-db.Miaow.Y.Hu.com

---
spring:
  config:
    activate:
      on-profile: "prod-mq"

mq: prod-mq.Miaow.Y.Hu.com

由于我并未配置具体的端口号,故而系统将采用默认的端口号8080启动,其中我们通过端口号访问得到,因为我们默认采用dev进行启动,故而我们在浏览器上得到的就是dev开头的数据。

在这里插入图片描述
这是在浏览器打印的结果,在控制台我们也可以看到相关打印的结果:
在这里插入图片描述
同理,我们也可以利用application.yml的特性,来完成我们所需要的功能。
例如:

@RestController
public class HelloController {
    @Value("${com.Miaow.Y.Hu.from}")
    public String from;

    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }

    @RequestMapping("/demo")
    public String didi(){
        System.out.println(from);
        return from;
    }
}

application.properties

com.Miaow.Y.Hu.from=miaow

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/197905.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!