spring-boot实战05:Spring Boo多环境配置及配置属性注入到对象

Posted 喻聪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-boot实战05:Spring Boo多环境配置及配置属性注入到对象相关的知识,希望对你有一定的参考价值。

项目工程结构:

配置文件application.properties文件

com.yucong.blog.name=yucong
com.yucong.blog.title=Spring Boot Course
com.yucong.blog.desc=${com.yucong.blog.name} is learing ${com.yucong.blog.title}

# 随机字符串
com.yucong.blog.value=${random.value}
# 随机int
com.yucong.blog.number=${random.int}
# 随机long
com.yucong.blog.bignumber=${random.long}
# 10以内的随机数
com.yucong.blog.test1=${random.int(10)}
# 10-20的随机数
com.yucong.blog.test2=${random.int[10,20]}

# 多环境配置文件激活属性
spring.profiles.active=dev

applicaation-dev.properties

server.port=1111

application-test.properties

server.port=2222

application-prod.properties

server.port=3333

 

将application.properties文件中自定义的属性注入到类的属性中

BlogProperties.java

 1 package com.yucong.demo.service;
 2 
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.stereotype.Component;
 5 
 6 /**
 7  * @author yucong
 8  * @version 1.0.0
 9  * @date 17/8/17 下午12:16.
10  */
11 @Component
12 public class BlogProperties {
13 
14     @Value("${com.yucong.blog.name}")
15     private String name;
16     @Value("${com.didispace.blog.title}")
17     private String title;
18     @Value("${com.yucong.blog.desc}")
19     private String desc;
20 
21     @Value("${com.yucong.blog.value}")
22     private String value;
23     @Value("${com.yucong.blog.number}")
24     private Integer number;
25     @Value("${com.yucong.blog.bignumber}")
26     private Long bignumber;
27     @Value("${com.yucong.blog.test1}")
28     private Integer test1;
29     @Value("${com.yucong.blog.test2}")
30     private Integer test2;
31 
32     public String getName() {
33         return name;
34     }
35 
36     public void setName(String name) {
37         this.name = name;
38     }
39 
40     public String getTitle() {
41         return title;
42     }
43 
44     public void setTitle(String title) {
45         this.title = title;
46     }
47 
48     public String getDesc() {
49         return desc;
50     }
51 
52     public void setDesc(String desc) {
53         this.desc = desc;
54     }
55 
56     public String getValue() {
57         return value;
58     }
59 
60     public void setValue(String value) {
61         this.value = value;
62     }
63 
64     public Integer getNumber() {
65         return number;
66     }
67 
68     public void setNumber(Integer number) {
69         this.number = number;
70     }
71 
72     public Long getBignumber() {
73         return bignumber;
74     }
75 
76     public void setBignumber(Long bignumber) {
77         this.bignumber = bignumber;
78     }
79 
80     public Integer getTest1() {
81         return test1;
82     }
83 
84     public void setTest1(Integer test1) {
85         this.test1 = test1;
86     }
87 
88     public Integer getTest2() {
89         return test2;
90     }
91 
92     public void setTest2(Integer test2) {
93         this.test2 = test2;
94     }
95 }

 单元测试YucongDemo02ApplicationTests.java:

 1 package com.yucong.demo;
 2 
 3 import org.apache.commons.logging.Log;
 4 import org.apache.commons.logging.LogFactory;
 5 import org.junit.Assert;
 6 import org.junit.Test;
 7 import org.junit.runner.RunWith;
 8 import org.springframework.beans.factory.annotation.Autowired;
 9 import org.springframework.boot.test.context.SpringBootTest;
10 import org.springframework.test.context.junit4.SpringRunner;
11 
12 import com.yucong.demo.service.BlogProperties;
13 
14 @RunWith(SpringRunner.class)
15 @SpringBootTest(classes=YucongDemo02Application.class)
16 public class YucongDemo02ApplicationTests {
17 
18     private static final Log log = LogFactory.getLog(YucongDemo02ApplicationTests.class);
19 
20     @Autowired
21     private BlogProperties blogProperties;
22 
23 
24     @Test
25     public void test1() throws Exception {
26         Assert.assertEquals("yucong", blogProperties.getName());
27         Assert.assertEquals("Spring Boot Course", blogProperties.getTitle());
28         Assert.assertEquals("yucong is learing Spring Boot Course", blogProperties.getDesc());
29 
30         log.info("随机数测试输出:");
31         log.info("随机字符串 : " + blogProperties.getValue());
32         log.info("随机int : " + blogProperties.getNumber());
33         log.info("随机long : " + blogProperties.getBignumber());
34         log.info("随机10以下 : " + blogProperties.getTest1());
35         log.info("随机10-20 : " + blogProperties.getTest2());
36 
37     }
38 
39 }

 

以上是关于spring-boot实战05:Spring Boo多环境配置及配置属性注入到对象的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot 应用程序的外部配置

没有 Spring-boot 的 Eureka 服务发现

使用 spring-boot 存储库返回单个属性

spring boot 实战 / mvn spring-boot:run 参数详解

从 spring-boot:run 获取命令行参数

spring-boot实战04:Spring Boot构建RESTful API