测试的环境:Spring Boot2 + Maven +lombok

准备需要用到的基础类:

public class People {
private String name;
private String address;
private String phone;
}

准备默认的配置文件application.properties,内容如下

people.default.name=zs
people.default.address=ccc
people.default.phone=122122

准备自定义配置文件people.properties,内容如下

people.default.name=test-zs
people.default.address=test-address
people.default.phone=111111

准备测试类

@RestController
public class PeopleController { @Autowired
private People people; @RequestMapping("/test1")
public void test1(){
System.out.println(people);
}
}

第一种情况:读取默认配置文件中的自定义属性(如application.properties)

1、直接在指定类读取文件属性

@Data
//@Setter
@ToString
@Configuration
@ConfigurationProperties(prefix = "people.default")
public class People {
private String name;
private String address;
private String phone;
}

测试结果:

注意:类用到了lombok的注解(@Data)或者使用@Setter注解。所以有getter/setter。如果没有使用注解,则需要setter方法才能读取成功。

2、配合@Vaule读取文件属性

@Configuration
public class PeopleConfigrution { @Value("${people.default.name}")
private String name;
@Value("${people.default.address}")
private String address;
@Value("${people.default.phone}")
private String phone; @Bean
public People initPeople(){
People people=new People();
people.setName(name);
people.setPhone(phone);
people.setAddress(address);
return people;
}
}

测试结果:

3、使用Environment读取

@Configuration
public class PeopleConfigrution { @Autowired
private Environment environment; @Bean
public People initPeople(){
People people=new People();
people.setName(environment.getProperty("people.default.name"));
people.setPhone(environment.getProperty("people.default.phone"));
people.setAddress(environment.getProperty("people.default.address"));
return people;
}
}

测试结果:

第二种情况:读取自定义文件中的属性(如people.properties)

需指定读取文件的位置,可使用@PropertySource注解指定,如

@Data
//@Setter
@ToString
@Configuration
@PropertySource("classpath:people.properties") //指定读取文件位置,可与读取默认文件第一种方式相比。
@ConfigurationProperties(prefix = "people.default")
public class People {
private String name;
private String address;
private String phone;
}

测试结果:

以上列举的不是全部方式,加载文件的方式还有其他方式,这篇只是列举常用的方式。

Spring Boot读取自定义外部属性的更多相关文章

  1. (C)spring boot读取自定义配置文件时乱码解决办法

    这是入门的第三天了,从简单的hello spring开始,已经慢慢接近web的样子.接下来当然是读取简单的对象属性了. 于是按照网上各位大神教的,简单写了个对象book,如上一篇(B),其他配置不需要 ...

  2. spring boot读取自定义配置文件时乱码解决办法

    @PropertySource(value = "classpath:book.yml", ignoreResourceNotFound = true,encoding = &qu ...

  3. Spring Boot 支持多种外部配置方式

    Spring Boot 支持多种外部配置方式 http://blog.csdn.net/isea533/article/details/50281151 这些方式优先级如下: 命令行参数 来自java ...

  4. Android读取自定义View属性

    Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...

  5. Spring boot 使用@Value注入属性

    Spring boot 使用@Value注入属性 学习了:http://blog.csdn.net/hry2015/article/details/72353994 如果启动的时候报错: spring ...

  6. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  7. spring boot 读取配置文件(application.yml)中的属性值

    在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...

  8. Spring Boot实践——用外部配置填充Bean属性的几种方法

    引用:https://blog.csdn.net/qq_17586821/article/details/79802320 spring boot允许我们把配置信息外部化.由此,我们就可以在不同的环境 ...

  9. 日志配置文件读取spring boot配置文件中的属性

    如果是读取 application.properties 这种spring boot的默认配置文件时 其中 scope固定为context  指明从上下文中获取, name 根据自己的意思给, sou ...

随机推荐

  1. 系统编程-信号-信号发送kill、raise、alarm

    信号发送 kill 和 raise函数 kill函数参数详解: 实验1 raise和kill 的使用 #include <stdio.h> #include <signal.h> ...

  2. 第23 章 : Kubernetes API 编程范式

    Kubernetes API 编程范式 需求来源 首先我们先来看一下 API 编程范式的需求来源. 在 Kubernetes 里面, API 编程范式也就是 Custom Resources Defi ...

  3. 第6 章 : 应用编排与管理:Deployment

    应用编排与管理 本节课程要点 需求来源: 用例解读: 操作演示以及架构设计. 需求来源 背景问题 首先,我们来看一下背景问题.如下图所示:如果我们直接管理集群中所有的 Pod,应用 A.B.C 的 P ...

  4. ATMS中去pause Activity A.

    上文写完之后,感觉这个部分写的还是不清晰,本文继续补充一下. 首先还是看堆栈. obtain:78, PauseActivityItem (android.app.servertransaction) ...

  5. 翻译:《实用的Python编程》08_00_Overview

    目录 | 上一节 (7 高级主题) | 下一节 (9 包) 8. 测试和调试 本节介绍与测试.日志和调试有关的基本主题. 8.1 测试 8.2 日志,错误处理和诊断 8.3 调试 目录 | 上一节 ( ...

  6. 了解什么是Odoo,为二次开发做准备

    什么是odoo odoo是由python语言开发,XML为模板的一体化业务解决方案系统,主要使用在企业资源规划(ERP)领域,还可以当做CMS系统,快速搭建自己博客.商城...系统 odoo前身是Op ...

  7. 201871030134-余宝鹏 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming) 2.掌握GitHub协作开发程 ...

  8. 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...

  9. 数据库MySQL四

    一.测试题 二.复习 说明:sql中的函数分为单行函数和分组函数 调用语法:select 函数名(实参列表); 1>字符函数 concat(str1,str2,..):拼接字符 substr(s ...

  10. 华为应用市场AppGallery Connect正式推出全新LOGO

    华为应用市场AppGallery Connect(简称AGC)正式推出全新Logo,新Logo的设计灵感源于编码中的符号<>,两个括号紧密联结成一个正方形,寓意华为应用市场AGC与开发者深 ...