spring boot 学习手册
  • 介绍
  • 基础教程
    • 1.RESTfull API简单项目的快速搭建
    • 2.配置文件详解:Properties和YAML
    • 3.配置文件-多环境配置
    • 4.日志配置-logback和log4j2
  • web应用开发
    • 1.模板引擎
    • 2.模板引擎FreeMarker
    • 3.模板引擎Thymeleaf
    • 4.模板引擎jsp
    • 5.错误处理
    • 6.Servlets, Filters, listeners
    • 7.CORS支持
    • 8.文件上传
    • 9.Interceptor拦截器
    • 10.AOP统一处理Web请求日志
    • 11.全局统一异常处理
    • 12. Retry重试
    • 13.RestTemplate
  • 关系型数据库
    • 1.JdbcTemplate
    • 2.Spring-data-jpa
      • @Id 和 @GeneratedValue 详解
      • 配置与注解备注
      • 全局统一前缀策略
      • 映射关系详解
      • 查询、分页、排序
      • JPA 资料
      • 进阶:jpa自定义行为方法
      • 进阶:锁
      • 进阶:Hibernate Validator
    • 3.事务处理
  • NoSQL数据库
    • 1.Redis
    • 2.Mongodb
  • Cache
    • 1.EhCache
    • 2.Redis
  • 异步消息服务
    • 1.JMS(ActiveMQ)
    • 2.AMQP(RabbitMQ)
  • Mybatis
    • Mybatis 初使用
    • Mybatis环境搭建
    • Mybatis开发流程
    • 业务开发流程
    • Mybatis资料
  • 进阶
    • 1.调用REST服务-使用代理
    • 2.发送邮件
    • 3.Spring Session实现集群-redis
    • 4.如何进行远程调试
    • 5.生产准备-基于HTTP的监控
    • 6.Spring Boot集成mybatis
    • 7.Spring Boot集成Druid
    • 8.Spring Boot集成Swagger
    • 9.生产部署-注意事项和如何使用脚本
  • 升华
    • Jenkins部署Spring Boot
    • 异步处理Http请求
    • FastDFS
    • Docker
    • 定时任务(corn job)
    • 批处理
    • @Async实现异步调用
  • 单元测试
    • WireMock伪造服务
  • 安全
    • 1.Spring Security
      • 认证
    • 2.Apache Shiro
  • TaskExecutor 异步线程池
  • 其他
    • 1.修改启动时显示
    • 2.获取配置文件中的值
    • 3.嵌入式容器
    • 4.配置SSL
    • 5.websocket
    • 6.Spring IO Platform
  • RESTfull API 开发
  • 附录:Eclipse - Spring Tool Suite工具的安装
  • 附录:Eclipse部署Maven
  • 附录:SpringBoot相关模块
  • 附录:注解笔记
  • 资料
  • 开发技巧
  • maven插件
Powered by GitBook
On this page
  • 一.配置文件的生效顺序,会对值进行覆盖:
  • 二.配置随机值
  • 三.属性占位符
  • 四.Application属性文件,按优先级排序,位置高的将覆盖位置低的
  • 五. 配置应用端口和其他配置的介绍
  • 六. 使用YAML代替Properties
  • 资料

Was this helpful?

  1. 基础教程

2.配置文件详解:Properties和YAML

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

  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指定)

1配置最优先,9最低

二.配置随机值

src/main/resources/application.properties文件中加入配置

demo.secret=${random.value}
demo.number=${random.int}
demo.bignumber=${random.long}
demo.number.less.than.ten=${random.int(10)}
demo.number.in.range=${random.int[1024,65536]}

注:出现黄点提示,是要提示配置元数据,可以不配置 demo可以为任意自定义字符

读取使用注解:@Value(value = "${demo.secret}"),这样就可以在项目中采用注释调用了

在类中加入成员变量,则就可以在类中使用成员变量secret,number了

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

@Value(value = "${demo.number}")
    private String number;

加入类方法

@RequestMapping(value = "getRandom")
    public Map<String, Object> get() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("secret", secret);
        map.put("number", number);
        return map;
    }

三.属性占位符

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

src/main/resources/application.properties文件中加入配置

demo.name=www.shujuwajue.com
demo.desc=${demo.name} is a domain name

在类中加入成员变量,则就可以在类中使用成员变量name,desc了

@Value(value = "${demo.name}")
    private String name;

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

加入类方法

@RequestMapping(value = "info")
public Map<String, Object> info() {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("name", name);
    map.put("desc", desc);
    return map;
}

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

  1. 当前目录下的一个/config子目录

  2. 当前目录

  3. 一个classpath下的/config包

  4. classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的,,也就是1配置最优先,4最低)

校验一下3和4:

resource目录下创建config目录,并创建application.properties文件

加入demo.desc=${demo.name} is anewdomain name

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

#端口配置:application.properties
server.port=8090
#时间格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#时区设置
spring.jackson.time-zone=Asia/Chongqing
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 格式化new Date()的格式

同样也可以在src/main/resources/application.properties文件中加入配置,也可以根据配置文件的优先级加入相应的配置文件中。

六. 使用YAML代替Properties

src/main/resources/下的 application.properties 重命名为 application.yaml

#自定义配置
demo:
  secret: ${random.value}
  number: ${random.int}
  name: www.shujuwajue.com
  desc: ${demo.name} is a domain name

#端口
server:
  port: 8090


#spring jsckson
spring:
  jackson:
  date-format: yyyy-MM-dd HH:mm:ss
  time-zone: Asia/Chongqing

注意写法:冒号后要加个空格

资料

server.context-path=/admin  //配置访问上下文,访问时候需要localhost/admin/xxxx
Previous1.RESTfull API简单项目的快速搭建Next3.配置文件-多环境配置

Last updated 5 years ago

Was this helpful?

访问:

访问:

classpath的理解可以参考:

访问测试:

http://localhost:8080/getRandom
http://localhost:8080/info
spring boot加载资源路径配置和classpath问题解决
http://localhost:8080/info
Spring Boot 属性配置和使用
Spring-Boot 相关的一些配置
spring boot全部配置参数