Srping boot 配置文件详解

Srping boot 配置文件详解

Spring Boot 自动化配置

Spring Boot 提供了对应用进行自动化配置。相比以前 XML 配置方式,很多显式方式申明是不需要的。Spring boot 开发起来,使我们就简化了很多步骤和不必要的代码。

自定义属性与加载

  1. 使用application.properties
  2. 使用application.yml

使用application.properties方式

person.name=测试环境
person.age=22
person.desc=我叫 ${person.name},今年${person.age}

person.user.name=开发
person.user.age=22
person.user.desc=我叫 ${person.name},今年${person.age}
        
server.port=8080

使用application.yml

person:
  name: 生产环境
  age: 22
  desc: 我叫 ${person.name},生产了${person.age}
  user:
    name: 开发
    age: 22
    desc: 我叫 ${person.name},生产了${person.age}

server:
  port: 80

获取属性的方法也有2个种

方法一:直接获取,利用@Value,直接写出属性的名字,来获取属性的值

@Setter
@Getter
@Component
public class Person {
    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;
    @Value("${person.desc}")
    private String desc;
}

方法二:使用前缀获取,利用@ConfigurationProperties注解配置前缀。然后属性名对应一样即可(这个更方便,建议用这种)

@Setter
@Getter
@Component
@ConfigurationProperties(prefix = "person.user")
public class User {
    private String name;
    private Integer age;
    private String desc;
}

写一个Controller 来测试效果

@RestController
public class Hello {

    @Autowired
    private User user;
    @Autowired
    private Person person;


    @GetMapping(value = "user")
    public String user(){
        return user.getDesc();
    }

    @GetMapping(value = "person")
    public String person(){
        return person.getDesc();
    }
}
小Q截图-20171012105248.png
小Q截图-20171012105302.png

环境切换

在实际的开发中,因为数据库配置、Redis 配置、注册中心和日志配置等的配置不同,所以我们有时候需要多种配置环境。例如,测试环境配置、开发环境配置、生产环境配置等。

Srping boot 配置文件详解_第1张图片
小Q截图-20171012110119.png
  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-prod.properties:生产环境

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

如:spring.profiles.active=test就会加载application-test.properties配置文件内容

注意点:application.properties 配置中文值的时候,读取出来的属性值会出现乱码问题。

application.yml则不会出现乱码问题

参考文章:

http://blog.didispace.com/springbootproperties/
http://www.bysocket.com/?p=1786

你可能感兴趣的:(Srping boot 配置文件详解)