一.使用@ConfigurationProperties来读取

1、Coffer entity

@Configuration
@ConfigurationProperties(prefix = "coffer")
@PropertySource("classpath:config/coffer.properties")
public class Coffer {
private String brand;
private Double length;
private Double width;
private Double height; //省略了get/set方法
private String[] contains;
private ArrayList<Fruit> fruits;
private HashMap<String,Object> map;
}

2、coffer.properties

coffer.brand=Camel
coffer.length=100.00
coffer.width=80.00
coffer.height=60.00
coffer.contains[0]=Raincoat
coffer.contains[1]=trousers
coffer.contains[2]=hat
coffer.contains[3]=glove
coffer.contains[4]=scarf
coffer.contains[5]=hood
coffer.fruits[0].fruitName=apricot
coffer.fruits[0].fruitColor=yellow
coffer.fruits[1].fruitName=plum
coffer.fruits[1].fruitColor=green
coffer.fruits[2].fruitName=pineapple
coffer.fruits[2].fruitColor=yellow
coffer.fruits[3].fruitName=watermelon
coffer.fruits[3].fruitColor=green
coffer.fruits[4].fruitName=strawberry
coffer.fruits[4].fruitColor=red
coffer.map.name=xiaomao
coffer.map.age=22
coffer.map.gender=female

3、springbootApplicationTest

@SpringBootTest
class SpringbootApplicationTests { @Autowired
private ApplicationContext ioc; @Autowired
private Coffer coffer; @Test
public void springbootTest(){
System.out.println(coffer);
}
}

4、result

Coffer{
  brand='Camel',
  length=100.0,
  width=80.0,
  height=60.0,
  contains=[Raincoat, trousers, hat, glove, scarf, hood],
  fruits=[
       Fruit{fruitName='apricot', fruitColor='yellow'},
       Fruit{fruitName='plum', fruitColor='green'},
       Fruit{fruitName='pineapple', fruitColor='yellow'},
       Fruit{fruitName='watermelon', fruitColor='green'},
       Fruit{fruitName='strawberry', fruitColor='red'}
      ],
  map={age=22, gender=female, name=xiaomao}}

二、使用@Value来读取

在springTest中无法使用@Value来读取配置属性,需要放到Controller中去读取

@PropertySource("classpath:config/coffer.properties")
@RestController
public class SpringbootController { @Value("${coffer.brand}")
private String brand;
@Value("${coffer.height}")
private Double height; @RequestMapping("/test")
public String springbootTest() {
return brand+"====="+height;
}

三、@ConfigurationProperties和@Value的区别

@Value获取值和@ConfigurationProperties获取值比较

                     @ConfigurationProperties                  @Value 

 功能                 批量注入配置文件中的属性                     一个个指定
松散绑定(松散语法)       支持      不支持
SpEL           不支持        支持
JSR303数据校验          支持         不支持
复杂类型封装         支持          不支持 配置文件yml还是properties他们都能获取到值; 如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value; 如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

Springboot读取properties配置文件数据的更多相关文章

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

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

  2. Java读取Properties配置文件

    1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,使用键值对的形式来保存属性集.不过Properties的键和值都是字符串 ...

  3. spring 框架的xml文件如何读取properties文件数据

    spring 框架的xml文件如何读取properties文件数据 第一步:在spring配置文件中 注意:value可以多配置几个properties文件 <bean id="pro ...

  4. jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法

    jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法 用系统属性System.getProperty("user.dir")获得执行命令的目录(网上 ...

  5. javaweb 读取properties配置文件参数

    场景1:在servlet中读取properties配置文件参数 protected void doGet(HttpServletRequest request, HttpServletResponse ...

  6. SpringBoot读取外部配置文件的方法

    SpringBoot读取外部配置文件的方法 Spring高级之注解@PropertySource详解(超详细) 1.@PropertySource(value = {"classpath:c ...

  7. 读取.properties配置文件

    方法1 public  class SSOUtils { protected static String URL_LOGIN = "/uas/service/api/login/info&q ...

  8. java读取properties配置文件总结

    java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...

  9. Java 读取 .properties 配置文件的几种方式

    Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 DOM 或 SAX 方式解析,而读取 properties 配 ...

随机推荐

  1. __file__, sys._getframe().f_lineno 当前文件的行号

    当前文件的行号 try: f = open(sys.argv[1], "rb") address_book.ParseFromString(f.read()) f.close()e ...

  2. python - Tkinter 模块 - python 自带的gui模块

    Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用. 1.创建窗口 from Tk ...

  3. oracle 日期格式操作

    原文转自:http://hi.baidu.com/gzfvb/blog/item/5062b7f008eb70a8a50f5206.html   Oracle日期格式:   to_date(" ...

  4. c++获取当前进程所在位置

    char buffer[MAX_PATH]; GetModuleFileNameA(NULL, buffer, MAX_PATH ); string::size_type pos = string( ...

  5. ES(ElasticSearch) 索引创建

    个人分类: ElasticSearchindex   环境:ES 6.2.2 os:Centos  7 kibana:6.2.2 1.创建新的索引(index) PUT indexTest001 结果 ...

  6. python接口自动化:requests+ddt+htmltestrunner数据驱动框架

    该框架分为四个包:xc_datas.xc_driven.xc_report.xc_tools. xc_datas:存放数据,xc_driven:存放执行程序,xc_report:存放生成的报告,xc_ ...

  7. 解析jmeter阶梯加压与请求的计算

    用百度做例子 我们设置阶梯加压线程组的请求参数,如下图 上图表示 1:每隔2秒钟,会在1秒内启动5个线程 2:每次线程加载之后都会运行2s然后开始下一次线程加载 3:最终会加载50个线程并持续运行30 ...

  8. 虚拟机三种网络模式及Xshell与Centos7虚拟机连接

    一.虚拟机的三种网络模式 1.桥接模式 a.该模式下的虚拟机可以上外网 b. 局域网之内的主机可以访问该虚拟机(做共享服务器使用) c. 该虚拟机可以和宿主机进行通信 d. 同一台主机相同模式下的虚拟 ...

  9. js while循环

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. 批处理遍历文件夹执行git pull

    echo off & color 0A for /d %%f in (D:\www\*) do ( D: cd %%f chdir git pull ) pause 遍历D:\www\这个文件 ...