首先新建一个springboot项目,此处省略。

1.新建一个application.properties

  1. person.name=kevin
  2. person.age=6
  3. person.sex=male

2.新建一个类,自动读取对应字段的值

有两种方式,

第一种

  1. package cn.wq;
  2.  
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.context.annotation.PropertySource;
  7.  
  8. @Configuration
  9. @EnableConfigurationProperties
  10. @PropertySource("classpath:application.properties")
  11. public class Person2Properties {
  12. @Value("${person.name}")
  13. private String name;
  14.  
  15. @Value("${person.age}")
  16. private String age;
  17.  
  18. @Value("${person.sex}")
  19. private String sex;
  20.  
  21. public String getName() {
  22. return name;
  23. }
  24.  
  25. public void setName(String name) {
  26. this.name = name;
  27. }
  28.  
  29. public String getAge() {
  30. return age;
  31. }
  32.  
  33. public void setAge(String age) {
  34. this.age = age;
  35. }
  36.  
  37. public String getSex() {
  38. return sex;
  39. }
  40.  
  41. public void setSex(String sex) {
  42. this.sex = sex;
  43. }
  44. }

第二种

  1. package cn.wq;
  2.  
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4.  
  5. @ConfigurationProperties(prefix = "person") /*如果使用prefix,则属性名中不能使用@Value来注解,但是必须在spring启动时,添加注解 @EnableConfigurationProperties(PersonProperties.class)*/
  6. public class PersonProperties {
  7.  
  8. private String name;
  9. private String age;
  10. private String sex;
  11. public String getName() {
  12. return name;
  13. }
  14.  
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18.  
  19. public String getAge() {
  20. return age;
  21. }
  22.  
  23. public void setAge(String age) {
  24. this.age = age;
  25. }
  26.  
  27. public String getSex() {
  28. return sex;
  29. }
  30.  
  31. public void setSex(String sex) {
  32. this.sex = sex;
  33. }
  34. }

3.启动主程序:

  1. package cn.wq;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.boot.CommandLineRunner;
  5. import org.springframework.boot.SpringApplication;
  6. import org.springframework.boot.autoconfigure.SpringBootApplication;
  7. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  8. import org.springframework.context.annotation.Configuration;
  9.  
  10. @Configuration
  11. @EnableConfigurationProperties(PersonProperties.class)
  12. @SpringBootApplication
  13. public class Application2 implements CommandLineRunner {
  14. public static void main(String[] args){
  15. SpringApplication.run(Application2.class,args);
  16. }
  17.  
  18. @Autowired
  19. PersonProperties personProperties;
  20.  
  21. @Autowired
  22. Person2Properties person2Properties;
  23.  
  24. @Override
  25. public void run(String... args) {
  26. System.out.println("程序实际上的入口在这里。");
  27. System.out.println("name:"+personProperties.getName());
  28. System.out.println("age:"+personProperties.getAge());
  29. System.out.println("sex:"+personProperties.getSex());
  30.  
  31. System.out.println("2-name:"+person2Properties.getName());
  32. System.out.println("2-age:"+person2Properties.getAge());
  33. System.out.println("2-sex:"+person2Properties.getSex());
  34. }
  35. }

4.运行,输出结果:

  1. . ____ _ __ _ _
  2. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
  3. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  4. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  5. ' |____| .__|_| |_|_| |_\__, | / / / /
  6. =========|_|==============|___/=/_/_/_/
  7. :: Spring Boot :: (v2.1.0.RELEASE)
  8.  
  9. 2019-06-19 20:20:50.348 INFO 18344 --- [ main] cn.wq.Application2 : Starting Application2 on cnki5213 with PID 18344 (C:\AppConsoleSpringBoot\target\classes started by Administrator in C:\AppConsoleSpringBoot)
  10. 2019-06-19 20:20:50.354 INFO 18344 --- [ main] cn.wq.Application2 : No active profile set, falling back to default profiles: default
  11. 2019-06-19 20:20:51.303 INFO 18344 --- [ main] cn.wq.Application2 : Started Application2 in 1.564 seconds (JVM running for 3.74)
  12. 程序实际上的入口在这里。
  13. name:kevin
  14. age:6
  15. sex:male
  16. 2-name:kevin
  17. 2-age:6
  18. 2-sex:male
  19.  
  20. Process finished with exit code 0

鸣谢

参考文献:https://www.cnblogs.com/V1haoge/p/7183408.html

springboot 控制台程序读取配置文件(原创)的更多相关文章

  1. 控制台程序读取Excel设置角色权限

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复283或者20181118可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  2. springboot笔记04——读取配置文件+使用slf4j日志

    前言 springboot常用的配置文件有yml和properties两种,当然有必要的时候也可以用xml.我个人更加喜欢用yml,所以我在这里使用yml作为例子.yml或properties配置文件 ...

  3. Win7和Vista的安全机制对于应用程序读取配置文件相关操作的影响(虚拟重定向技术)

    今天构造了一个新版本的XXXX软件,并且在纯净的系统下进行了较为全面的测试.测试中也发现了一些问题.其中包括在Win7测试时程序竟然在另一个目录中创建了文件夹和配置文件,并且进行相关读取操作,却并没有 ...

  4. SpringBoot两种读取配置文件的方式

    方式一 @Value("${custom.group}") private String customGroup; 方式二 @Autowired private Environme ...

  5. springboot 使用consul 读取配置文件(遇到的坑太多,没记录)

    最终成功版. pom引入mavn依赖: <!--consul--> <dependency> <groupId>org.springframework.cloud& ...

  6. 控制台程序读取WIKI形式的TXT文件并一表格的形式显示在Word中

    'Imports System.Collections.Generic 'Imports System.Text 'Imports System.IO 'Imports office = Micros ...

  7. C#控制台程序读取项目中文件路径

    //使用appdomain获取当前应用程序集的执行目录 string dir = AppDomain.CurrentDomain.BaseDirectory; //使用path获取当前应用程序集的执行 ...

  8. SpringBoot 读取配置文件及profiles切换配置文件

    读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 先创 ...

  9. 五、Springboot 之 自定义配置文件及读取配置文件

    说明:建议所有的类应该与spring-boot启动程序同级,不如扫描不到 1.核心配置文件是指在resources根目录下的application.properties或application.yml ...

随机推荐

  1. Go语言 - goroutine

    并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天). 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天). Go语言的并发通过goroutine实现.goroutin ...

  2. 浏览器性能监控performance使用

    浏览器中有一个performance的性能监控,平时我也没有用到,接手了一个大数据的项目,发现页面打开的比较慢,使用浏览器的performance分析可以看到各个步骤花费的时间. 关于项目的性能分析如 ...

  3. 项目(1-2)ES32获取mpu9250传入数据库

    . 报一个错,找不到min函数 #define min(X,Y) ((X) < (Y) ? (X) : (Y)) 手动添加 之后不报错了 .最原始的采集 /******************* ...

  4. luogu_4317: 花神的数论题

    花神的数论题 题意描述: 设\(sum(i)\)表示\(i\)的二进制数中\(1\)的个数. 给定一个整数\(N\),求\(\prod_{i=1}^Nsum(i)\). 输入描述: 输入包含一个正整数 ...

  5. JS的ES5的扩展内容

    JS的ES5 1.严格模式: (1)什么是严格模式: 在全局或函数的第一条语句定义为:  'use strict' 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用 (2)严格模式作用: ...

  6. luogu P1447 [NOI2010]能量采集 欧拉反演

    题面 题目要我们求的东西可以化为: \[\sum_{i=1}^{n}\sum_{j=1}^{m}2*gcd(i,j)-1\] \[-nm+2\sum_{i=1}^{n}\sum_{j=1}^{m}gc ...

  7. linux grep 查询多行的方法

    linux grep 查询多行的方法 经常查询 git log 中使用的方法, 如下 git log |grep "xxxx" 如果想查询多行的话, 就有些尴尬, 如果想查询多行的 ...

  8. IIS服务器部署web应用《一》

    最近了解到开发用iis部署环境,于是了解了下. IIS用于部署web应用,其简单,配置方便,可以用作本地机器作为服务器进行部署.且所在部署系统为windows,便于使用iis. 端口80需要修改为别的 ...

  9. shell expect的简单实用

    一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具.expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断 ...

  10. SpringMvc的 @Valid 拦截到的异常如何抛出

    SpringMvc中,校验参数可以使用 @Valid 注解,同时在相应的对象里使用 @NotBlank( message = "昵称不能为空")@NotNull( message ...