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中配置各个环境不同的内容通过命令行方式去激活不同环境的配置