一、新建maven工程:springboot-configfile-demo,完整工程如下:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>springboot.configfile.demo</groupId>
<artifactId>springboot-configfile-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

二、新建三个配置文件

1、主配置文件application.yml(程序默认从该文件读取配置信息,放在该配置文件的配置,可以直接在代码通过@Value读取)

server:
port: 8083
context-path: / teacher:
name: boshen
password: 123456

2、自定义配置文件1,configs/test1.properties(没有前缀)

doctor_name=zhangsan
doctor_age=35

3、自定义配置文件2,configs/test2.properties(有前缀,后面通过一个Student类来接收信息)

student.name=lishi
student.sex=man student.bookList[0]=english
student.bookList[1]=history student.scoreMap[english]=95
student.scoreMap[history]=98

三、新建类Student

package configfile.demo.configBean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component; import java.io.Serializable;
import java.util.List;
import java.util.Map; /**
* @author Administrator
* @date 2019/02/15
*/
@Configuration
@ConfigurationProperties(prefix = "student")
@PropertySource("classpath:configs/test2.properties"
)
@Component
public class Student implements Serializable{
private String name;
private String sex; private List<String> bookList; private Map<String,String> scoreMap; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public List<String> getBookList() {
return bookList;
} public void setBookList(List<String> bookList) {
this.bookList = bookList;
} public Map<String, String> getScoreMap() {
return scoreMap;
} public void setScoreMap(Map<String, String> scoreMap) {
this.scoreMap = scoreMap;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", bookList=" + bookList +
", scoreMap=" + scoreMap +
'}';
}
}

四、新建controller类,进行测试

package configfile.demo.controller;

import configfile.demo.configBean.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; /**
* @author Administrator
* @date 2019/02/15
*/
@RestController
@RequestMapping("/config-test")
public class TestController { @Value("${teacher.name}")
private String teacherName;
@Value("${teacher.password}")
private String teacherPassword; @Value("${doctor_name}")
private String doctorName;
@Value("${doctor_age}")
private Integer doctorAge; @Autowired
private Student student; @RequestMapping(value = "/read",method = RequestMethod.GET)
public void postTest(){
System.out.println("以下是默认的application.yml的配置:==========");
System.out.println("teacher.name:"+teacherName);
System.out.println("teacher.password:"+teacherPassword); System.out.println("以下是configs/test1.properties的配置:==========");
System.out.println("doctor_namee:"+doctorName);
System.out.println("doctor_age:"+doctorAge); System.out.println("以下是configs/test2.properties的配置:==========");
System.out.println(student.toString());
}
}

五、新建springboot启动类

package configfile.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; /**
* @author Administrator
* @date 2019/02/15
*/
@SpringBootApplication
@Configuration
@ComponentScan
@EnableAutoConfiguration
@PropertySource(value = "classpath:/configs/test1.properties", ignoreResourceNotFound = true)
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}

六,启动程序,在postman测试,并查看控制台输出

springboot读取properties和yml配置文件的更多相关文章

  1. springboot读取properties(yml)的几种常用方式

    boot项目中一些秘钥等不常变动的信息大多存储在配置文件中,那么我们怎么获取配置文件中的属性呢? 以获取server端口号为例讲解几种方法:配置信息如下 一:使用@Value注解 @Value(&qu ...

  2. SpringBoot使用注解(@value)读取properties(yml)文件中 配置信息

    为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性. 1. 两种使用方法1)@Value("#{co ...

  3. 使用IDEA开发SpringBoot不加载application.yml配置文件的解决方案

    1.如果启动项目不加载application.yml配置文件,那么请确认下是否应用了Resources为项目资源文件夹 2.如果项目起初是可以正常使用的,突然不知道改了什么,然后进行启动项目的时候不加 ...

  4. Springboot .properties或.yml配置文件读取pom.xml文件值

    有时候配置文件需要读取pom文件配置<properties></properties>中间自定义属性值的时候可以用@@获取 例:@package.parameter@ 然后还需 ...

  5. Springboot读取properties配置文件数据

    一.使用@ConfigurationProperties来读取 1.Coffer entity @Configuration @ConfigurationProperties(prefix = &qu ...

  6. springboot动态读取properties 和yml的配置

    properties使用PropertiesLoaderUtils,yml使用YamlPropertySourceLoader application.properties microsoft.def ...

  7. SpringBoot 读取properties配置文件 @Value使用 中文乱码问题

    一,idea中配置文件中文乱码问题 使用idea开发,读取properites配置文件 配置: #app 菜单 #没有限制,所有人都可访问的菜单 menu.unlimited=订单审批,现场尽调,合作 ...

  8. springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期

    总的来说呢,有两种方式,一种是原始的方式,即使用PropertiesUtils来读取配置文件. 第二种就是使用springboot的注解的方式来读取配置文件. 1.原始方式处理属性和时间日期: 工具类 ...

  9. spring读取properties和其他配置文件的几种方式

    1.因为spring容器的一些机制,在读取配置文件进行数据库的配置等等是很有必要的,所以我们要考虑配置文件的的读取方式以及各个方式的实用性 2.配置文件的读取方式我这里介绍2种,目的是掌握这2种就可以 ...

随机推荐

  1. 源码:Java集合源码之:数组与链表(一)

    数组和链表是数据结构中最基本的部分. 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据.那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每 ...

  2. [编程小技巧]Notepad++中如何实现文本对比功能?

    1.打开Notepad++插件中心   2.安装Compare   3.按提示重启Notepad++     4.点击Compare比较临近的两个文件       5. 取消比较     6 Comp ...

  3. (整理)EF分页的实现

    最近做一个小功能,需要数据分页,因为小框架使用的是EF,因此查询了一下EF的分页. EF分页主要用到了skip和take两个方法: GetListBy(lamda xxxxx).skip(PageSi ...

  4. C常量与控制语句

    在C语言中定义常量的两种方式 在C语言编程中定义常量有两种方法. const关键字 #define预处理器 1. const关键字 const关键字用于定义C语言编程中的常量. const float ...

  5. WPF canvas设置旋转角度和偏移位置

    /// <summary> /// 设置旋转角度和位置 /// </summary> /// <param name="Angle">角度< ...

  6. Django文件存储(一)默认存储系统

    Django默认使用的文件存储系统'django.core.files.storage.FileSystemStorage'是一个本地存储系统,由settings中的DEFAULT_FILE_STOR ...

  7. leetcode236

    class Solution { public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { ...

  8. gitlab Api接口使用

    官方文档 https://docs.gitlab.com/search/?q=api&idx=gitlab&p=1 示例:获取每个项目下的用户信息 #!/usr/bin/env pyt ...

  9. json 异常

    com.google.gson.JsonSyntaxException: 1530842820000 1530842820000 是服务器直接返回的Date值由 Gson 解析后出来的值. 后台发出: ...

  10. jQuery——检测滚动条是否到达底部

    一.jQuery检测浏览器window滚动条到达底部 jQuery获取位置和尺寸相关函数:$(document).height()    获取整个页面的高度:$(window).height()    ...