在上一篇中介绍了在idea中创建springboot工程及使用web工程输出“helloworld”到前端页面,本文学习在springboot工程中读取属性文件中的属性值。

一 自定义属性

  在application.properties文件中添加属性配置项

myapp.name=helloworld

  可以使用@Value 注解来读取,在之前的helloworld工程的控制器中添加属性并读取,如下

@RestController
public class HelloController { @Value("${myapp.name}")
private String name; @RequestMapping("/hello")
public String hello(){
System.out.println("myapp name :" + name);
return "helloworld";
} }

@Value 注解会去application.properties文件中配置属性为myapp.name的属性,并将值赋值给name属性。访问hello方法,可以看到控制台上打印出来的信息

  自定义的属性比较少时使用@Value读取还是比较方便的,如果我们的属性比较多的时候,比如我们要读取数据库连接池配置的很多的属性值,再这样读取的话,就显得不是很美观了。这种情况我们一般定义一个对象,把属性字段作为对象的属性来接收,在属性文件中在增加一个属性

myapp.age=2

  我们定义一个对象MyAppProperties来接收属性值

@Component
@ConfigurationProperties(prefix = "myapp")
public class MyAppProperties { private String name;
private int age; @Override
public String toString() {
return "MyAppProperties{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} //省略getter和setter方法
}
@Component 表示指定当前类为实例,以便可以在spring中使用
@ConfigurationProperties(prefix = "myapp") 表示把application中的myapp开头的属性自动赋值给当前对象的属性,比如把myapp.name的值赋值给name属性
访问hello方法可以看到
二 自定义属性配置文件  
  有的时候,我们需要把自己的属性配置信息写在自己的配置文件中,以便和系统的application.properties分开,我们可以在resources目录下新建自己的属性文件my.properties,并添加属性
my.name=helloworld2 my.age=22  

  定义读取属性的对象类,使用 @PropertySource("classpath:my.properties") 来指定我们当前类要读取的属性文件

@Component
@PropertySource("classpath:my.properties")
@ConfigurationProperties(prefix = "my")
public class MyAppProperties2 { private String name;
private int age; @Override
public String toString() {
return "MyAppProperties2{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} // 省略getter和setter方法
}

  修改控制器hello方法测试

@RestController
public class HelloController { @Resource
private MyAppProperties myAppProperties;
@Resource
private MyAppProperties2 myAppProperties2; @RequestMapping("/hello")
public String hello(){
System.out.println(myAppProperties.toString());
System.out.println(myAppProperties2.toString());
return "helloworld";
} }

  访问hello方法,可以看到控制台输出的打印信息

SpringBoot入门 (二) 属性文件读取的更多相关文章

  1. java属性文件读取,属性修改

    /** * 属性文件读取 * @author bestmata * */ public class CommUtil { private static Logger logger=Logger.get ...

  2. springboot 入门二- 读取配置信息一

    在上篇入门中简单介绍下springboot启动使用了大量的默认配置,在实际开发过程中,经常需要启动多个服务,那端口如何手动修改呢? 此篇就是简单介绍相关的配置文件信息. Spring Boot允许外部 ...

  3. 极简 Node.js 入门 - 3.2 文件读取

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  4. springboot~openfeign从JSON文件读取数据

    对openfeign不清楚的同学可以先看我这篇文章:springboot~openfeign从此和httpClient说再见 对于openfeign来说,帮助我们解决了服务端调用服务端的问题,你不需要 ...

  5. Spring MVC 属性文件读取注入到静态字段

    目录(?)[-] servlet-contextxml configproperties 示例属性 ConfigInfo 对应的配置bean 使用   在项目中,有些参数需要配置到属性文件xxx.pr ...

  6. SpringBoot入门-多环境文件配置(二)

    pom.xml <name>springboot-application</name> <description>A project for Spring Boot ...

  7. SpringBoot入门及YML文件详解

    SpringBoot 简介 微框架,与 Spring4 一起诞生,基于约定.生来为了简化 spring 的配置 优点 可以快速的上手,整合了一些子项目(开源框架或者第三方开源库) 可以依赖很少的配置快 ...

  8. SpringBoot的配置属性文件*.properties值如何映射到类中使用

    想要在JAVA Bean中读取配置文件中的内容有两种方式,可以进行获取到 第一种方式: 1.在默认的配置文件application.properties 中进行设置 Key-Value键值对 com. ...

  9. SpringBoot入门(二):日志及自定义属性

    这一章主要说springboot中日志的配置.自定义属性的配置与读取.分环境的yml配置文件(如本地环境.测试环境.生产环境等).比较偏向实际开发,较为实用,前面一章的一些基本创建在这里就不多废话了. ...

随机推荐

  1. Python中通过open()操作文件时的文件中文名乱码问题

    最近在用Python进行文件操作的时候,遇到创建中文文件名的乱码问题. Python默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open ...

  2. Unity Shader 阶段性反思与总结(一)

    Unity Shader 阶段性反思与总结(一) 最近在写Shader的时候,总是感觉力不从心,感觉自己已经看了蛮久的书了,也有一定的积累了,但是一想写什么效果,完完全全就是脑袋一团空白.典型的例子就 ...

  3. 2D and 3D Linear Geometry Kernel ( Geometry Kernels) CGAL 4.13 -User Manual

    1 Introduction CGAL, the Computational Geometry Algorithms Library, is written in C++ and consists o ...

  4. RabbitMQ之消息持久化(转)

    原文地址 https://blog.csdn.net/u013256816/article/details/60875666/ 消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证 ...

  5. template(定义类的模板关键字)

    template<typename T1> template<class T1> 在一般情况下二者使用方式是一样的,但有一个特例:就是当T1是一个类的时候,而这个类又有子类时候 ...

  6. 900. RLE Iterator

    Write an iterator that iterates through a run-length encoded sequence. The iterator is initialized b ...

  7. Elasticsearch安装与环境配置

    Elasticsearch安装与环境配置 确保机器上已经安装了jdk7以上版本 下载:官网下载地址:https://www.elastic.co/downloads/elasticsearch 将下载 ...

  8. MYSQL NULL值特性

    NULL是一种“没有类型”的值,通常表示“无值”,“未知值”,“缺失值”,“超界”,“不在其中”等,我们在日常运用中很容易和NULL字符串混淆,这里大致整理了下NULL值的一些特性,以便能够正确使用N ...

  9. AQS源码泛读,梳理设计流程(jdk8)

    一.AQS介绍 AQS(AbstractQueuedSynchronizer)抽象队列同步器,属于多线程编程的基本工具:JDK对其定义得很详细,并提供了多种常用的工具类(重入锁,读写锁,信号量,Cyc ...

  10. MiniUi-----Spinner 数值调节器(可以实现任意值的递增)

    Spinner 数值调节器可以实现任意值的递增,每次的递增值主要是通过increment="递增值"属性来控制的. 属性 该属性扩展自验证框(validatebox),下面是为微调 ...