SpringBoot yml文件数据读取
读取配置数据
使用 @Value注解
使用 @Value("表达式")
注解可以从配合文件中读取数据,注解中用于读取属性名引用方式是:${一级属性名.二级属性名……}
我们可以在 BookController
中使用 @Value
注解读取配合文件数据,如下
@RestController
@RequestMapping("/books")
public class BookController {@Value("${lesson}")private String lesson;@Value("${server.port}")private Integer port;@Value("${enterprise.subject[0]}")private String subject_00;@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println(lesson);System.out.println(port);System.out.println(subject_00);return "hello , spring boot!";}
}
Environment对象
上面方式读取到的数据特别零散,SpringBoot
还可以使用 @Autowired
注解注入 Environment
对象的方式读取数据。这种方式 SpringBoot
会将配置文件中所有的数据封装到 Environment
对象中,如果需要使用哪个数据只需要通过调用 Environment
对象的 getProperty(String name)
方法获取。具体代码如下:
@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate Environment env;@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println(env.getProperty("lesson"));System.out.println(env.getProperty("enterprise.name"));System.out.println(env.getProperty("enterprise.subject[0]"));return "hello , spring boot!";}
}
注意:这种方式,框架内容大量数据,而在开发中我们很少使用。
自定义对象
SpringBoot
还提供了将配置文件中的数据封装到我们自定义的实体类对象中的方式。具体操作如下:
将实体类
bean
的创建交给Spring
管理。在类上添加
@Component
注解使用
@ConfigurationProperties
注解表示加载配置文件在该注解中也可以使用
prefix
属性指定只加载指定前缀的数据在
BookController
中进行注入
具体代码如下:
Enterprise
实体类内容如下:
@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {private String name;private int age;private String tel;private String[] subject;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String[] getSubject() {return subject;}public void setSubject(String[] subject) {this.subject = subject;}@Overridepublic String toString() {return "Enterprise{" +"name='" + name + '\'' +", age=" + age +", tel='" + tel + '\'' +", subject=" + Arrays.toString(subject) +'}';}
}
BookController
内容如下:
@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate Enterprise enterprise;@GetMapping("/{id}")public String getById(@PathVariable Integer id){System.out.println(enterprise.getName());System.out.println(enterprise.getAge());System.out.println(enterprise.getSubject());System.out.println(enterprise.getTel());System.out.println(enterprise.getSubject()[0]);return "hello , spring boot!";}
}
注意:
使用第三种方式,在实体类上有如下警告提示
这个警告提示解决是在 pom.xml
中添加如下依赖即可
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>
springboot 配置文件分级
SpringBoot
中4级配置文件放置位置:
- 1级:classpath:application.yml 【最低】
- 2级:classpath:config/application.yml
- 3级:file :application.yml
- 4级:file :config/application.yml 【最高】
在jar包位置下的application.yml
config优先级最高
SpringBoot yml文件数据读取相关推荐
- yml配置oracle连接,springboot yml 文件配置oracle,提示账号密码错误
最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...
- springboot yml文件不是绿叶子问题
项目的yml文件一直不显示绿色小叶子,显示文本类型或者下图类型,项目启动运行不会影响,但是看着不爽,必需整它,终于,今天解决了. 先看一下我之前的yml格式 还有这样的,看起来不舒服. 解决方案 ct ...
- python 读取yml文件_python读取yaml配置文件
什么是yaml 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大, 2.支持多种语言:p ...
- java解析yml文件_java读取解析application.yml
java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar com.fasterxml.jackson.dataformat ...
- python 导入数据对不齐_[Python] 大文件数据读取分析
首先我们可以确定的是不能用read()与readlines()函数: 因为如果将这两个函数均将数据全部读入内存,会造成内存不足的情况. 针对数据按行划分的文件 以计算行数为例,首先针对几种不同的方法来 ...
- c++ 读取 .tfw 文件数据(读取 .tif 影像中的投影信息)
关于读取 .tif 影像的投影信息,下面介绍了两种方法: 1.按读取 .txt 的方法读取 .tfw 文件: 2.使用 GDAL 直接从 .tif 影像 ...
- tensorflow随笔-文件数据读取
# -*- coding:utf-8 -*- import tensorflow as tf fn_queue=tf.train.string_input_producer(["winequ ...
- python 读取yml文件_Python 读取 yaml 配置文件 | 文艺数学君
摘要这一篇介绍 Python 中使用 yaml 的方式加载配置文件,包含关于 pyyaml 的简单使用,读入和写入配置文件. 简介 之前我们介绍过使用 configparser 来读取配置文件(Pyt ...
- darpa E3和E5数据集bin文件数据读取
1.E3/E5数据集下载云盘中下载ta3-java-consumer.tar.gz压缩包 2.解压缩,用./json_consumer.sh可以讲数据集中的.bin文件转换成.json格式,方法如下: ...
最新文章
- 40 个 Spring Boot 常用注解
- 清理恶意插件提高上网速度
- vagrant up报错 Warning: Authentication failure. Retrying...解决方案
- java ListString 转换成带逗号的字符串
- 银行加速“去房地产化”
- qt布局嵌套_PyQt5 笔记(01):嵌套布局
- jdbc不能识别别名_Spark基础:读写JDBC
- Android自定义Dialog及与Activity的交互
- 【Django】ORM操作#2
- webpack中使用jquery
- 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
- 添加右键用Sublime Text3 打开文件和文件夹
- java实用教程——组件及事件处理——ItemEvent事件(设置字体类型)
- HTH的完整形式是什么?
- MySQL之Procedure(存储过程)和Function(函数)
- Macaca上手体验
- Java 帝国对 Python 的渗透能成功吗?
- 树莓派吃灰记——搭建本地git服务
- Google Map API 文档
- IDEA更改主题颜色