Spring Boot Learning(配置文件)

Properties配置

配置文件的生效顺序,会对值进行覆盖:

1. @TestPropertySource 注解
2. 命令行参数
3. Java系统属性(System.getProperties())
4. 操作系统环境变量
5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource
6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
8. 在@Configuration类上的@PropertySource注解
9. 默认属性(使用SpringApplication.setDefaultProperties指定)

配置随机值:

eric.secret=${random.value}
eric.number=${random.int}

读取使用注解:@Value(value = "${eric.secret}")

注:出现黄点提示,是要提示配置元数据,可以不配置

属性占位符:

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。
eric.name=www.eric.com
eric.desc=${eric.name} is a domain name

Application属性文件,按优先级排序,位置高的将覆盖位置低的

1. 当前目录下的一个/config子目录
2. 当前目录
3. 一个classpath下的/config包
4. classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的),例如在resource新建config子目录并在这个目录下生成application.properties ,它会覆盖resource下的application.properties文件(如果文件中有相同属性)。

配置应用端口和其他配置的介绍:

#端口配置:
server.port=8090

#时间格式化

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

#时区设置
spring.jackson.time-zone=Asia/Chongqing

*注意:默认时区是UTC,需要更改为当前时区

Yaml配置文件(建议使用它代替properties文件)

代码:

package com.example.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.example.bean.User;

@RestController
@RequestMapping(value = "index")
public class IndexController {

    @Value(value = "${eric.secret}")
    private String secret;

    @Value(value = "${eric.number}")
    private int number;

    @Value(value = "${eric.desc}")
    private String desc;

    @RequestMapping
    public String index() {
        return "hello spring boot!";
    }

    @RequestMapping(value = "get")
    public Map<String, Object> get(@RequestParam String name) {

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("name", name);
        map.put("value", "hello boot");
        map.put("secret", secret);
        map.put("number", number);
        map.put("desc", desc);

        return map;
    }

    @RequestMapping(value = "find/{id}/{name}")
    public User get(@PathVariable int id, @PathVariable String name) {

        User user = new User();

        user.setId(id);
        user.setName(name);
        user.setDate(new Date());

        return user;
    }
}

application.properties:

#随机数,只有在重启后值才会有变化
#32位的随机数
eric.secret=${random.value}
eric.number=${random.int}

eric.name=www.eric.com
eric.desc=${eric.name} is new

application.yaml:

#随机数,只有在重启后值才会有变化
#32位的随机数
eric:
  secret: ${random.value}
  number: ${random.int}
  name: www.eric.com
  desc: ${eric.name} is a domain name

server:
  port: 9090

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss

代码目录结构:

时间: 2024-11-08 15:30:28

Spring Boot Learning(配置文件)的相关文章

Spring Boot Learning(配置文件--多环境配置)

多环境配置的好处: 1.不同环境配置可以配置不同的参数2.便于部署,提高效率,减少出错 Properties多环境配置 1. 配置激活选项    spring.profiles.active=dev2.添加其他配置文件 application-test.properties application-dev.properties application-prod.properties Yaml多环境配置: 1.配置激活选项  spring:    profiles:      active: de

Spring boot 通用配置文件模板

001 # ===================================================================002 # COMMON SPRING BOOT PROPERTIES003 #004 # This sample file is provided as a guideline. Do NOT copy it in its005 # entirety to your own application.               ^^^006 # ==

Spring Boot属性配置文件详解

自定义属性与加载 我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义: com.example.blog.name=zzh com.example.blog.title=hello springboot @Component public class BlogProperties { @Value("${com.example.blog.name}") private String name; @Value("${com.exa

Spring Boot之配置文件application.properties

Spring Boot默认的配置文件为application.properties,放在src/main/resources目录下或者类路径的/config目录下,作为Spring Boot的全局配置文件,对一些默认的配置进行修改. 接下来使用例子展示Spring Boot配置文件的用法: 首先在src/main/resources下新建application.properties文件,内容如下 author.name=微儿博客 author.sex=男 创建controller类 ackage

spring-boot实战【08】【转】:Spring Boot属性配置文件详解

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用. 在之前的各篇文章中都有提及关于application.pro

Spring Boot Learning(日志配置)

支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback配置方式:默认配置文件配置和引用外部配置文件配置 一. 默认配置文件配置(不建议使用:不够灵活,对log4j2等不够友好)# 日志文件名,比如:roncoo.log,或者是 /var/log/roncoo.loglogging.file=roncoo.log # 日志级别配置,比如: logging.level.org.springframework=DEBUGlogging.lev

spring boot 读取配置文件(application.yml)中的属性值111

在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: [html] view plain copy <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-proc

Spring Boot 核心配置文件 bootstrap &amp; application 详解。

用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .properties) 为什么会有这两种配置文件呢?大家都清楚它们的区别和具体使用场景吗? bootstrap/ application 的区别 特意去翻了下 Spring Boot 的官方文档,没有找到关于这两种文件的具体定义,然后再翻了下 Spring Cloud 的官方文档找到了它们的区别. ht

(拿来主义-8) Spring Boot属性配置文件详解(三)

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用. 自定义属性与加载 我们在使用Spring Boot的时候,通