Spring Boot 的项目属性配置我们一般是放在 Resource 文件夹下,默认的是 application.properties 文件,这里建议使用 .yml 替代 .properties 文件,下面将对两种都做简单介绍,主要是使用 .yml 。

一、.properties 和 .yml 语法对比

1、使用 application.properties 文件

  1. server.port=8081
  2. server.context-path=/Blog

然后启动项目,这个时候我们的项目首页就是

http://localhost:8081/Blog

2、使用 application.yml

我们可以删除掉刚才的 application.properties 文件

  1. server:
  2. port: 8081
  3. context-path: /Blog

同样,重新启动项目,首页是

http://localhost:8081/Blog

可以发现,yml 这种方式更加简便。记得冒号后加空格

二、应用属性的配置和使用

1、我们在 application.yml 下再加几行,如下

  1. server:
  2. port: 8081
  3. context-path: /Blog
  4. name: liuyanzhao
  5. age: 20
  6. gender: man

2、新建一个 HelloController.java 文件

  1. package com.liuyanzhao.blog;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.bind.annotation.RestController;
  6. /**
  7. * @Author 言曌
  8. * @DATE 2017/10/28 下午7:25
  9. * @URL http://liuyanzhao.com
  10. */
  11. @RestController
  12. public class HelloController {
  13. @Value("${name}")
  14. private String name;
  15. @Value("${age}")
  16. private Integer age;
  17. @Value("${gender}")
  18. private String gender;
  19. @RequestMapping(value = "/hello",method = RequestMethod.GET)
  20. public String say() {
  21. return "name:"+name+",age="+age+",gender="+gender;
  22. }
  23. }

3、运行项目,在浏览器中访问 http://localhost:8081/Blog/hello

同时,我们发现 配置文件中不需要管属性的值是什么数据类型的,只需要在注入的时候设置即可

三、在配置中使用配置

1、我们还可以在配置中使用配置

  1. server:
  2. port: 8081
  3. context-path: /Blog
  4. name: liuyanzhao
  5. age: 20
  6. gender: man
  7. content: "name=${name},age=${age}"

如上,我们再加了一个 content 属性,它可以使用上面配置的其他属性,使用 ${} 即可

2、java 代码如下

  1. package com.liuyanzhao.blog;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.bind.annotation.RestController;
  6. /**
  7. * @Author 言曌
  8. * @DATE 2017/10/28 下午7:25
  9. * @URL http://liuyanzhao.com
  10. */
  11. @RestController
  12. public class HelloController {
  13. @Value("${content}")
  14. private String content;
  15. @RequestMapping(value = "/hello",method = RequestMethod.GET)
  16. public String say() {
  17. return content;
  18. }
  19. }

3、浏览器中效果如下

四、注入 Bean 的方式获取属性

如果我们向上面的,在 java 中如果要使用一个属性就要注入一个,像这样

@Value("${name}")

private String name;

一旦属性太多了,我们就要一个个地写,比较麻烦。其实我们可以以注入一个 Bean 的方式来获取属性的值

1、application.yml 不变

  1. server:
  2. port: 8081
  3. context-path: /Blog
  4. my:
  5. name: liuyanzhao
  6. age: 20
  7. gender: man

2、创建一个 User.java

  1. package com.liuyanzhao.blog;
  2. import org.springframework.boot.context.properties.ConfigurationProperties;
  3. import org.springframework.stereotype.Component;
  4. /**
  5. * @Author 言曌
  6. * @DATE 2017/10/28 下午7:45
  7. * @URL http://liuyanzhao.com
  8. */
  9. @Component
  10. @ConfigurationProperties(prefix = "my")
  11. public class User {
  12. private String name;
  13. private Integer age;
  14. private String gender;
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public Integer getAge() {
  22. return age;
  23. }
  24. public void setAge(Integer age) {
  25. this.age = age;
  26. }
  27. public String getGender() {
  28. return gender;
  29. }
  30. public void setGender(String gender) {
  31. this.gender = gender;
  32. }
  33. }

3、HelloController.java

  1. package com.liuyanzhao.blog;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.bind.annotation.RestController;
  6. /**
  7. * @Author 言曌
  8. * @DATE 2017/10/28 下午7:25
  9. * @URL http://liuyanzhao.com
  10. */
  11. @RestController
  12. public class HelloController {
  13. @Autowired
  14. private User user;
  15. @RequestMapping(value = "/hello",method = RequestMethod.GET)
  16. public String say() {
  17. return user.getName()+user.getAge()+user.getGender();
  18. }
  19. }

4、浏览器中效果如下

五、使用多套配置文件,随时切换

有时候我们可能需要经常修改配置文件,或者需要两套配置文件,为了方便切换,我们会新建两个,然后选择其中一个启动即可。

1、新建 application-dev.yml

  1. server:
  2. port: 8083
  3. context-path: /Blog
  4. my:
  5. name: saysky
  6. age: 120
  7. gender: unknown

2、新建 application-prod.yml

  1. server:
  2. port: 8081
  3. context-path: /Blog
  4. my:
  5. name: liuyanzhao
  6. age: 20
  7. gender: man

3、编辑 application.yml

  1. spring:
  2. profiles:
  3. active: dev

如上,我们使用的是 application-dev.yml 这个配置文件启动的。如果要使用另一个,改成 active: prod 即可

六、使用 java -jar 的方式同时启动不同配置文件的项目

接上第五步,如果我们要同时启动那两个不同配置文件的项目怎么做呢?我们在 Spring Boot入门(1)-第一个Spring Boot应用 中已经介绍了三种启动方式,这里我们可以使用第三种的 java -jar 方式

1、 进入项目文件夹

/Users/liuyanzhao/Documents/JavaStudy/workspace/springboot

2、编译项目

mvn install

3、 进入 target 目录

cd target

4、 找到对应的 jar,如 blog-0.0.1-SNAPSHOT.jar

然后带参数运行

java -jar blog-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

我们在终端下启动的是 prod 的,然后可以使用 IntelliJ IDEA 启动 dev 的那个

5、最终浏览器效果如下

http://localhost:8083/Blog/hello

http://localhost:8081/Blog/hello

Spring Boot入门(2)-项目属性配置相关推荐

  1. webbrowser中localhost和发布的地址_004、Spring Boot中的项目属性配置

    我们知道,在项目中,很多时候需要用到一些配置的信息,这些信息可能在测试环境和生产环境下会有不同的配置,后面根据实际业务情况有可能还会做修改,针对这种情况,我们不能将这些配置在代码中写死,最好就是写到配 ...

  2. dev项目属性按钮是灰色_Spring Boot 中的项目属性配置

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了Spring Boot 如何使用 SLF4J 进行日志记 ...

  3. Spring Boot入门到精通(超详细)

    1.Spring Boot简介 我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准, ...

  4. requestmapping配置页面后_第004课:Spring Boot 项目属性配置

    在项目中,很多时候需要用到一些配置的信息,这些信息可能在测试环境和生产环境下会有不同的配置,后面根据实际业务情况有可能还会做修改,针对这种情况,我们不能将这些配置在代码中写死,最好就是写到配置文件中. ...

  5. Spring Boot 入门

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  6. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  7. Spring Boot 入门与实战笔记

    **一.**Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 20 ...

  8. Spring Boot 入门之缓存和 NoSQL 篇(四)

    原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一.前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降.但是,大多 ...

  9. Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!

    之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.接下来要说一说Mybatis 的分页 ...

  10. Spring boot入门(三):集成AdminLTE(Freemarker),结合generate代码生成器,利用DataTable和PageHelper分页...

    Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示 标题 ...

最新文章

  1. YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)
  2. Gitee Pages 静态网页托管服务
  3. 各种平台解压压缩总结
  4. WebP 在减少图片体积和流量上的效果如何?—— WebP 技术实践分享
  5. 详解:设计模式之-代理设计
  6. MongoDB安装中断问题 - 踩坑篇
  7. tomcat服务器开启gzip功能的方法
  8. Nginx用为缓存服务器
  9. 遍历查询+从非根节点开始遍历+从下向上遍历树+从层次化查询中删除节点和分支...
  10. 史上最强单片机科普,看完给跪了!
  11. 微信小程序开发之——开发者工具介绍(1.7)
  12. Android DRM
  13. 视频服务器是什么?要如何搭建?
  14. 东北大学计算机学院杨金柱院长,电子信息学院赴东北大学走访、调研
  15. 基于STM32F407的ADC解析-ADC1多通道扫描模式电压采集实验(启用DMA传输数据)
  16. 【北亚数据恢复】Hp DL380服务器raid磁盘故障导致数据库数据丢失的数据恢复案例
  17. Python仅四步写出完整漂亮的五子棋
  18. seneca mysql_seneca-entity的mysql插件自增主键
  19. 如果你不会使用Markdown,读这个
  20. 百度云爬虫_python

热门文章

  1. python实现50行代码_利用 50行Python 代码构建一个在线文本生成器!
  2. SqlDataAdapter的增加,删除,修改
  3. 上海译文公布2019年“新书目录” 名家名译作品结集出版
  4. Shark简介、部署及编译小结
  5. 再也不学AJAX了!(三)跨域获取资源 ② - JSONP CORS
  6. 【Elasticsearch】Mapping APIs
  7. error CS1617: Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, Default or an...
  8. python做人工智能-马哥教育官网-专业Linux培训班,Python培训机构
  9. html背景框颜色,DIV+CSS颜色边框背景等样式 - roucheng
  10. python可以处理什么文件_第十五篇 Python之文件处理