崛起于Springboot2.X之配置文件详解(10)

序言:针对公司开发配置文件的一些基础常识

1、核心配置文件

springboot框架也被我认为一个工具,它的主要核心文件为application.properties,又可以命名为application.yml亦或者application.yaml,所有的与springboot集成框架等的配置属性都可以在它里面配置。

    1.1 application.properties风格

server.port=8080

    1.2 application.yml 风格

server:
   port: 8080

注意冒号后面加空格,在填写具体之

    1.3 @Value取值

列入:

mujiutian.haha=566

崛起于Springboot2.X之配置文件详解(10)

java类取值为:

@Value("${mujiutian.haha}")
private String aa;

这样就可以获取到配置文件中的值。

但是如果你输入的是中文的话,会出现乱码,所以在配置文件中添加配置:

spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

同时,在IDEA中的setting的文件编码也需要一致,不然不会正常显示中文,有的默认是GBK

崛起于Springboot2.X之配置文件详解(10)

这样获取配置文件中即便是中文的值也会正常显示

    1.4 @ConfigurationProperties 取值

这个注解也能够取配置文件中的注解,不过一般主要用于一个配置类中,将配置文件的那些属性集中到一个具体java类,然后同意组成一个实体类对他封装,一般用于mysql,redis等配置文件中

配置文件:

mujiutian.haha=爱你

具体类:

@Component
@ConfigurationProperties(prefix = "mujiutian")
public class TestConfig {

    private String haha;

    public String getHaha() {
        return haha;
    }

    public void setHaha(String haha) {
        this.haha = haha;
    }
}

最后在controller中获取:

@Controller
public class Test1Controller {

    @Autowired
    TestConfig testConfig;

    @RequestMapping(value = "/test")
    public @ResponseBody String test1(){
        return testConfig.getHaha();
    }
}

也能够取出相同的值。两种注解用于不同的场景。

    1.5 多配置文件切换

 一般我们自己开发使用的数据库与产品上线使用的数据库是不一样的,以前的ssm框架我们是在xml中注释这个xml文件,然后打开线上的库,而现在springboot不同了,改变不是那么的大,我们分别创建多余的两个配置文件,名字不同,application-dev.properties和application-pro.properties这两个配置文件我们配置同样的属性,比如一个是server.port=8080,而另一个是server.port=8098,我们正常开发使用8080端口,线上环境切换到8098的端口,然后在主配置文件application.properties中配置为:

spring.profiles.active=dev

后面的dev 就是我们自己多添加文件的application-{name}.properties,当我们想切换那个配置文件的时候,我们可以根据这个就可以了。

转载于:https://my.oschina.net/mdxlcj/blog/1852861