application.properties配置中文乱码问题
删除现有的文件,设置idea。setting->editor->file encodings 将Global Encoding
Project Encoding
Default encoding for properties files
都设置成utf-8
.并且勾选Transparent native-to-ascii conversion
多配置时spring.profiles.active=dev
不生效
如果只有application.properties
和application-dev.properties
这两个文件,是不行的,需要在增加一个文件比如application-prod.properties
。
只有配置文件多余2个才会生效
配置使用
application-dev.properties内容如下
1 2 3
| com.dudu.name="张三" com.dudu.want="跑步" com.dudu.sex="男"
|
直接使用配置
在需要用到的地方使用,在属性上使用@Value
注解就可以
1 2
| @Value("${com.dudu.name}") private String name;
|
使用bean对象方式
config/ConfigBean.java 代码如下,值得注意的是@Configuration
注解非常重要,如果没有这个注解是不生效的。
其实还有@EnableConfigurationProperties
注解方式,但使用起来不如@configuration
方便。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| package com.springboot.config.config;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration;
/** * @author shooke */ @Configuration @ConfigurationProperties(prefix="com.dudu") public class ConfigBean { private String name; private String sex; private String want;
public String getWant() { return want;}
public void setWant(String want) { this.want = want;}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getSex() { return sex; }
public void setSex(String sex) { this.sex = sex; } }
|
在需要用到配置的地方,直接初始化一个ConfigBean的对象就可以了
1 2 3 4 5 6 7
| @Autowired ConfigBean conf;
@RequestMapping("/dev") public String dev(){ return conf.getName(); }
|
使用自定义properties
有时候配置项太多了,咱们就拆分成不同的文件。拆分的文件使用需要用到@PropertySource
注解,指定一下配置文件路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| /** * @author shooke */ @Configuration @ConfigurationProperties(prefix = "com.md") @PropertySource("classpath:test.properties") public class ConfigTestBean { private String name; private String want; // 省略getter和setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getWant() { return want; }
public void setWant(String want) { this.want = want; } }
|
代码
https://gitee.com/shooke/springboot/tree/master/springboot-config
参考资料
http://tengj.top/2017/02/28/springboot2/