为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性。

1. 两种使用方法
1)@Value("#{configProperties['key']}")

2)@Value("${key}")

2. 配置文件示例

ftp:
ftplp: 10.2.23.89
ftpPort: 21
ftpUser: uftp
ftpPwd: 12345678
ftpRemotePath: /home

说明:以上是配置文件中的信息,主要是一些账号密码等信息。

3. 读取yml配置文件的工具类

package com.dbright.dataprediction.entity;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component; @Component
@PropertySource("classpath:ftpconfig.yml")
@ConfigurationProperties(prefix = "ftp")
public class FtpProperties { @Value("${ftplp}")
public String ftplp;
@Value("${ftpPort}")
public String ftpPort;
@Value("${ftpUser}")
public String ftpUser;
@Value("${ftpPwd}")
public String ftpPwd;
@Value("${ftpRemotePath}")
public String ftpRemotePath; public String getFtplp() {
return ftplp;
} public void setFtplp(String ftplp) {
this.ftplp = ftplp;
} public String getFtpPort() {
return ftpPort;
} public void setFtpPort(String ftpPort) {
this.ftpPort = ftpPort;
} public String getFtpUser() {
return ftpUser;
} public void setFtpUser(String ftpUser) {
this.ftpUser = ftpUser;
} public String getFtpPwd() {
return ftpPwd;
} public void setFtpPwd(String ftpPwd) {
this.ftpPwd = ftpPwd;
} public String getFtpRemotePath() {
return ftpRemotePath;
} public void setFtpRemotePath(String ftpRemotePath) {
this.ftpRemotePath = ftpRemotePath;
}
}

 

说明:以上是使用@value注解来读取yml配置文件的代码示例
1)@component —— 把普通pojo实例化到spring容器中,相当于配置文件中的`<bean id="" class=""/>`
2) @PropertySource("classpath:ftpconfig.yml") —— 设置yml文件的路径,方便扫描到。一般我们配置文件都是放在resources包下。所以我们只需要 classpath+所需要读取的配置文件名称。
3)@ConfigurationProperties(prefix = "ftp") —— 这个不需要解释太多,配置文件里面内容的前缀,我们读取的是ftp下的信息。
4)@Value("${ftplp}") —— 这是读取我们所需的配置信息,美元符号+{字段名}即可制定
5)下面定义字符串来接收所读取到的配置信息。
6)写set和get方法,方便外部类调用。

4. 演示:效果图如下

可以看到,我们成功取到了我们想要的值。
5. 一开始说的第二种和这个差不多,把{}外的 $ 变成 # 号,然后里面指定配置文件的信息+字段而已。大同小异,我就不贴代码上来了。

今天的内容就到这里啦,谢谢观看!

有需要源码的,或者有不理解,欢迎关注微信公众号来讨论,留言会回复的哦~

赞赏码

SpringBoot使用注解(@value)读取properties(yml)文件中 配置信息的更多相关文章

  1. 在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

  2. springboot:读取application.yml文件

    现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形. 一.概述 开发过程中经常遇到要读取application.yml文件中的 ...

  3. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  4. java读取properties文件的配置信息

    项目开发中,我们一般来向 application.properties 文件中放一些全局配置变量,以便程序中读取使用,本篇内容来演示从properties配置文件中读取键值. 当然,我们不一定写入 a ...

  5. Springboot读取自定义的yml文件中的List对象

    Yml文件(novellist.xml)如下: novellist:   list:     - name: 笑傲江湖       type: 武侠       master: 令狐冲       a ...

  6. Java学习笔记——JDBC读取properties属性文件

    Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...

  7. springboot在yml配置文件中配置类的属性笔记

    首先建立一个简单的实体类,我这里以学生为例,并加上@Component和@ConfigurationProperties(prefix ="student")注解,其中prefix ...

  8. springboot2.0application.在yml文件中添加自定义配置

    1. 在application.yml文件中添加自定义配置 app: platform: version: code: '1.0.0' 2. 定义bean类   具体格式: 其中的成员变量名称需要与配 ...

  9. Spring boot中普通工具类不能使用@Value注入yml文件中的自定义参数的问题

    在写一个工具类的时候,因为要用到yml中的自定义参数,使用@Value发现值不能正常注入,都显示为null: yml文件中的自定义格式 调用工具类的时候不能new的方式 要使用@Autowired的方 ...

随机推荐

  1. 雷神领域(并查集真是个好东西)并查集+流氓dp

    考场上,整整看了半个小时以上的题目!!! 化简题意: 给定一个全0矩阵,一些坐标点(x,y)为1,当三个点可以构成一个直角三角形时(直角边长为整数)拓展为一个矩形,之后从(0,0)出发,求最多的占用行 ...

  2. Markdown基本语法小结

    目录 Typore Markdown基本语法 1.标题 一级标题 二级标题 三级标题 2.字体加粗 3.斜体 4.文本高亮 5.上标 6.下标 7.引用代码 1 8.代码引用2 9.代码引用3 10. ...

  3. ARP协议字段解读

    Hardware type : 硬件类型,识别链路层协议 Protocol type : 协议类型,标识网络层协议 Hardware size : 硬件地址大小,标识MAC地址长度,这里是6个字节(4 ...

  4. TRANK和VTP

    需求:因为公司规模逐渐扩大,出现相同部门不同办公室的情况,老板提出新的要求:相同部门可以通信,不同部门不能通信. 利用vlan: 缺点:浪费材料,应用技术手段把两条交叉线变成一条. 因此,引进trun ...

  5. Ansible之入门简介

    一.ansible简介 ansible是一款由python语言编写的一款自动化运维工具,它集合了众多运维工具(puppet.cfengine.chef.func.fabric)优点,实现了批量系统配置 ...

  6. 深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍

    第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/9905345.html 机器级代码 计算机系统使用了多种不同形式的抽象,利用更简单的抽象模型来隐藏实现的细节. ...

  7. 网站搭建 - Linux虚拟系统 - 时间设置 - root密码修改 - 建站

    先试一下,如果不成的话,就不发表了. 下载织梦: 额,这个先还是不要下了. Linux是Apache + MySQL + PHP的套路,先下载吧,不摆图了,直接摆命令,我的是虚拟机,可能没有那么顺利. ...

  8. Windows下编译最新版ChezScheme

    据说ChezScheme是最快的神级编译器,一秒钟几百万行,王垠说的2秒内编译自身绝不是夸张(看这里<揭秘Chez Scheme>,Scheme中文社区).ChezScheme由美国印第安 ...

  9. js控制文本显示的字数,超出显示省略号

    在css中我们说了用css控制文本显示几行,超出用省略号,但这个办法是要完全占满一整行的,偏偏就是有UI设计师就不这么干,是不是很想打他,哈哈哈,我不会的时候都这样子在心里骂设计师的,这么久那么爱搞特 ...

  10. 【idea】高德地图可以关爱一下高个汽车

    现状:1.交通事故时不时能看到大卡车,双层巴士在城市里限高区域时的车祸 原因分析:1.司机对路况不熟,驶入新的限高路,造成事故2.司机对车况不熟,临时换的车驾驶,忘记车高的变化3.司机路况车况都熟,道 ...