Spring boot学习一(多环境配置)
springboot启动时只需要在 application.properties中完成一些属性配置就能开启各模块的应用,有时在本地环境开发的情况表就可能需要配置多套环境(例如不同的数据进行启动,这时我们就需要使用到多环境配置)
1 . 自定属性加载
com.didispace.blog.name=author com.didispace.blog.title=Spring Boot教程
1.1然后通过@Value("${属性名}")注解来加载对应的配置属性,具体如下:
@Component
public class BlogProperties {
@Value("${com.didispace.blog.name}")
private String name;
@Value("${com.didispace.blog.title}")
private String title;
// 省略getter和setter
}
1.2通过单元测试来验证BlogProperties中的属性是否已经根据配置文件加载了。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class ApplicationTests {
@Autowired
private BlogProperties blogProperties;
@Test
public void getHello() throws Exception {
Assert.assertEquals(blogProperties.getName(), "author");
Assert.assertEquals(blogProperties.getTitle(), "Spring Boot教程");
}
}1.3参数间的引用(在属性文件中配置)
com.didispace.blog.name=123
com.didispace.blog.title=标题
com.didispace.blog.desc=${com.didispace.blog.name}2222222《${com.didispace.blog.title}》当值引用属性时,结果就该为上面的内容进行填充的值
1.4 使用随机数
# 随机字符串
com.didispace.blog.value=${random.value}
# 随机int
com.didispace.blog.number=${random.int}
# 随机long
com.didispace.blog.bignumber=${random.long}
# 10以内的随机数
com.didispace.blog.test1=${random.int(10)}
# 10-20的随机数
com.didispace.blog.test2=${random.int[10,20]} 
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。如:spring.profiles.active=test就会加载application-test.properties配置文件内容
按照上面的实验,可以如下总结多环境的配置思路:
application.properties中配置通用内容,并设置spring.profiles.active=dev,以开发环境为默认配置
application-{profile}.properties中配置各个环境不同的内容通过命令行方式去激活不同环境的配置
