第五章,配置

2019-12-29  本文已影响0人  毛仑上保罗先生

每个系统都要配置,废话就少说了, 直接了來吧

一般我们会把配置文件直接放在resouces文件夹中,默认会有一个application.properties文件,我们在项目中新建了两个文件 image.png
这两个文件就是为了环境切换准备的,我们一般都在application.properties文件切换环境,
spring.profiles.active=dev

要注意配置文件是会被替换的,需要注意前后顺序

image.png
image.png
这样我们在代码中获取local.user.name 的到的值肯定是最后出现的那一个, 还要注意一个就是有些东西只能出现一次, 比如server.prot这类服务器配置,只能在一个配置文件里面出现,否则就会出错, 至于为什么会出错干过软件的都明白, 对了还要说下application-dev.properties文件命名,一般来说就是横岗后面追加自己想要的什么dev, prod,test等,springboot的配置都在这里
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

读取配置文件

spring提供了三种读取配置文件的方式

@Value

@RestController
@RequestMapping("/configDemo")
public class ConfigDemoController {
    @Autowired
    private EnvironmentConfig environmentConfig;
    @Value("${local.user.name}")
    private String userName;
    @Autowired
    private ConfigurationPropertiesConfig ConfigurationPropertiesConfig;

    /**
     * Value 获取配置值
     *
     * @return
     */
    @GetMapping("/username")
    public String getUserName_Value() {
        return userName;
    }

    /**
     * Environment 获取配置值
     *
     * @return
     */
    @GetMapping("/username_env")
    public String getUserName_Environment() {
        return environmentConfig.getUserName();
    }

    /**
     * configurationProperties 获取配置值
     *
     * @return
     */
    @GetMapping("/server_configurationProperties")
    public String getServer_ConfigurationProperties() {
        String address = ConfigurationPropertiesConfig.getAddress();
        return address;
    }
}

ConfigurationProperties

@Configuration
@ConfigurationProperties("server")
public class ConfigurationPropertiesConfig {
    private int port;
    private String address;

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

Environment

@Configuration
public class EnvironmentConfig {
    @Autowired
    private Environment environment;

    public String getUserName() {
        return environment.getProperty("local.user.name");
    }
}

上一篇 下一篇

猜你喜欢

热点阅读