项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821

(一)yml配置文件:

pom.xml加入依赖:

<!-- 支持 @ConfigurationProperties 注解 -->

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<version>${spring-boot.version}</version>

</dependency>

在application.yml文件中加上:

#自定义的属性和值
myYml:
simpleProp: simplePropValue

arrayProps: 1,2,3,4,5

listProp1:

- name: abc

value: abcValue

- name: efg

value: efgValue

listProp2:

- config2Value1

- config2Vavlue2

mapProps:

key1: value1

key2: value2

使用一个java类获取yml文件的内容:

package com.sun.configuration;
import org.springframework.boot.context.properties.ConfigurationProperties;


import org.springframework.stereotype.Component;

import java.util.ArrayList;


import java.util.HashMap;


import java.util.List;


import java.util.Map;

/**
  • 加载yaml配置文件的方法
  • Created by sun on 2017-1-15.
  • spring-boot更新到1.5.2版本后locations属性无法使用
  • @PropertySource注解只可以加载proprties文件,无法加载yaml文件
  • 故现在把数据放到application.yml文件中,spring-boot启动时会加载


    */


    @Component


    //@ConfigurationProperties(locations = {"classpath:config/myProps.yml"},prefix = "myProps")


    @ConfigurationProperties(prefix = "myYml")


    public class YmlConfig {

    String simpleProp;


    private String[] arrayProps;


    private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的属性值


    private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的属性值


    private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的属性值

    public String getSimpleProp() {


    return simpleProp;


    }
    //String类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要


    public void setSimpleProp(String simpleProp) {


    this.simpleProp = simpleProp;


    }
    public String[] getArrayProps() {


    return arrayProps;


    }

    public void setArrayProps(String[] arrayProps) {


    this.arrayProps = arrayProps;


    }

    public List<Map<String, String>> getListProp1() {


    return listProp1;


    }

    public void setListProp1(List<Map<String, String>> listProp1) {


    this.listProp1 = listProp1;

    } public List<String> getListProp2() {


    return listProp2;


    }

    public void setListProp2(List<String> listProp2) {


    this.listProp2 = listProp2;


    }

    public Map<String, String> getMapProps() {


    return mapProps;


    }

    public void setMapProps(Map<String, String> mapProps) {


    this.mapProps = mapProps;


    }


    }

通过依赖注入就可以获取该对象:

@Autowired

private YmlConfig config;

方法内获取值:

ObjectMapper objectMapper = new ObjectMapper();

//测试加载yml文件

System.out.println("simpleProp: " + config.getSimpleProp());

System.out.println("arrayProps: " + objectMapper.writeValueAsString(config.getArrayProps()));

System.out.println("listProp1: " + objectMapper.writeValueAsString(config.getListProp1()));

System.out.println("listProp2: " + objectMapper.writeValueAsString(config.getListProp2()));

System.out.println("mapProps: " + objectMapper.writeValueAsString(config.getMapProps()));

(二)properties配置文件:

使用@PropertySource注解加载配置文件,该注解无法加载yml配置文件。使用@Value注解获得文件中的参数值

package com.sun.configuration;
import org.springframework.context.annotation.Bean;


import org.springframework.context.annotation.Configuration;


import org.springframework.context.annotation.PropertySource;


import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

/**
  • 加载properties配置文件,在方法中可以获取
  • abc.properties文件不存在,验证ignoreResourceNotFound属性
  • 加上encoding = "utf-8"属性防止中文乱码,不能为大写的"UTF-8"
  • Created by sun on 2017-3-30.


    */


    @Configuration


    @PropertySource(value = {"classpath:/config/propConfigs.properties","classpath:/config/abc.properties"},


    ignoreResourceNotFound = true,encoding = "utf-8")


    public class PropConfig {

    // PropertySourcesPlaceholderConfigurer这个bean,


    // 这个bean主要用于解决@value中使用的${…}占位符。


    // 假如你不使用${…}占位符的话,可以不使用这个bean。


    @Bean


    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {


    return new PropertySourcesPlaceholderConfigurer();


    }


    }


    获取properties文件参数值有两种方法,一种获得Environment 的对象,第二种就是@Value注解
@Autowired


private Environment env;


@Value("${age}")
String name;</br>

@RequestMapping(</span>"/"<span style="color: #000000">)</br>
@ResponseBody</br>
String home(HttpServletRequest req) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> JsonProcessingException, UnsupportedEncodingException {</br>
logger.info(</span>"测试通过!!!"<span style="color: #000000">);</br>
ObjectMapper objectMapper </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> ObjectMapper();</br>
</span><span style="color: #008000">//</span><span style="color: #008000">测试加载yml文件</span></br>
System.out.println("simpleProp: " +<span style="color: #000000"> config.getSimpleProp());</br>
System.out.println(</span>"arrayProps: " +<span style="color: #000000"> objectMapper.writeValueAsString(config.getArrayProps()));</br>
System.out.println(</span>"listProp1: " +<span style="color: #000000"> objectMapper.writeValueAsString(config.getListProp1()));</br>
System.out.println(</span>"listProp2: " +<span style="color: #000000"> objectMapper.writeValueAsString(config.getListProp2()));</br>
System.out.println(</span>"mapProps: " +<span style="color: #000000"> objectMapper.writeValueAsString(config.getMapProps()));</br></br></br>



//测试加载properties文件

System.out.println(env.getProperty("name"));//孙凯

System.out.println(env.getProperty("abc"));//null

System.out.println(name);//26

    <span style="color: #0000ff">return</span> "Hello World!"<span style="color: #000000">;</br>
}</span></pre>

SpringBoot学习:获取yml和properties配置文件的内容(转)的更多相关文章

  1. SpringBoot学习:获取yml和properties配置文件的内容

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  2. SpringBoot学习:获取yml和properties配置文件的内容(转)

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  3. Springboot 之 解决IDEA读取properties配置文件的中文乱码问题

    问题描述 当在.properties的配置文件中有中文时,读取出来的总是乱码.比如我的application.properties配置文件的内容如下: server.port=9090 test.ms ...

  4. SpringBoot学习:读取yml和properties文件的内容

    一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: <!-- 支持 @ConfigurationProperties 注解 --> <!-- https://m ...

  5. Springboot 获取yml、properties参数

    获取properties或yml文件的配置数据(两种方法)(默认的application文件或者自定义的yml和properties) 1.使用@Value()注解 1.1 配置数据 如:在prope ...

  6. SpringBoot 项目不加载 application.properties 配置文件

    起因:新安装的idea第一次运行springboot项目报url错误(Failed to configure a DataSource: 'url' attribute is not specifie ...

  7. SpringBoot学习遇到的问题(1) - 配置文件有日志的debug模式等配置项,为什么不起作用

    这个问题困扰我近乎两天,通过查找N多资料后终于解决,写下来共享给大家. logging.level.root=DEBUG ... 一系列的日志配置项,都不起作用的原因是springboot启动加载不到 ...

  8. SpringBoot中 application.yml /application.properties常用配置介绍

    # Tomcat server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 10444 ser ...

  9. yml和properties配置文件区别

    我们可以观察到的格式就是yml文件是梯级呈现的,我们应该注意一下几个方面: 1>在properties文件里面的 “ .”  连接在yml文件里面全部换成 ":" 进行连接, ...

随机推荐

  1. chrome模拟手机功能

    在搭建好web側环境之后.能够使用chrome来模拟手机的功能 直接上图吧: 图1是直接模拟一个通用的界面 图2里面能够选择不同的手机型号,还是比較全的! 选择一个查看一下,和手机是一样的效果,非常赞 ...

  2. node --进行后台的环境搭建

    1.下载winscp  --- 输入IP 端口 账号 密码  进入当前的服务器环境 2.下载xshell5 ---- 输入IP 端口  和 winscp 达成连接. 3.把本地代码放置 winscp远 ...

  3. 一文了解sun.misc.Unsafe

    Java语言和JVM平台已经度过了20岁的生日.它最初起源于机顶盒.移动设备和Java-Card,同时也应用在了各种服务器系统中,Java已成为物联网(Internet of Things)的通用语言 ...

  4. CentOS 7最小化安装图解

    一.环境介绍: win10 x64安装VMware® Workstation 14 Pro(版本:14.1.2 build-8497320) 二.安装CentOS 1.新建虚拟机 打开虚拟机,主页,创 ...

  5. 如何运行vue项目(维护他人的项目)

    假如你是个小白,在公司接手他人的项目,这个时候,该怎么将这个项目跑通? 前提: 首先,这个教程主要针对vue小白,并且不知道安装node.js环境的.言归正传,下面开始教程:在维护项目之前,需要把所有 ...

  6. 怎样让索引仅仅能被一个SQL使用

    有个徒弟问我,要创建一个索引,去优化一个SQL,可是创建了索引之后其它 SQL 也要用 这个索引,其它SQL慢死了.要优化的SQL又快.遇到这样的问题咋搞? 一般遇到这样的问题还是非常少的.处理的方法 ...

  7. 使用Spring框架的好处

    转自:https://www.cnblogs.com/hoobey/p/6032506.html 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JD ...

  8. vue <input type="file">上传图片、预览、删除

    使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...

  9. 微信小程序图片使用示例

    小程序官方API:https://developers.weixin.qq.com/miniprogram/dev/component/image.html 1:加载本地文件夹图片 <image ...

  10. 00090_字节输入流InputStream

    1.字节输入流InputStream (1)通过InputStream可以实现把内存中的数据写出到文件: (2)把内存中的数据写出到文件InputStream此抽象类,是表示字节输入流的所有类的超类. ...