博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 读取配置文件
阅读量:5879 次
发布时间:2019-06-19

本文共 2920 字,大约阅读时间需要 9 分钟。

  hot3.png

了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息。

Spring-Boot读取配置文件的方式:

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

    配置文件application.properties内容如下:

test.msg=Hello World SpringBoot

    方式一:使用@Value方式(常用)

import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class WebController {	@Value("${test.msg}")	private String msg;		@RequestMapping("/index1") 	public String index1(){		return "方式一:"+msg;	}}

    注意:在@Value的${}中包含的是核心配置文件中的键名。

    http://localhost:8088/index1时得到:"方式一:Hello World SpringBoot"

    方式二:使用Environment方式

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.Environment;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class WebController {	@Autowired	private Environment env;		@RequestMapping("/index2") 	public String index2(){		return "方式二:"+env.getProperty("test.msg");	}}

    注意:这种方式是依赖注入Evnironment来完成,在创建的成员变量private Environment env上加上@Autowired注解即可完成依赖注入,然后使用env.getProperty("键名")即可读取出对应的值。

    访问:http://localhost:8088/index2时得到:"方式二:Hello World SpringBoot"

2.读取自定义配置文件信息,例如:config.properties
        为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息,这里在resources目录下创建配置文件config.properties

        resources/config.properties内容如下:

user.name=lvganguser.age=35

        创建实体类:

import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Configuration;import org.springframework.stereotype.Component;@Component@ConfigurationProperties(prefix = "user",locations = "classpath:config.properties")   public class MyWebConfig{	private String name;	private int age;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}}

        注意:在@ConfigurationProperties注释中有两个属性:

                locations:指定配置文件的所在位置
                prefix:指定配置文件中键名称的前缀(我这里配置文件中所有键名都是以author.开头)
        使用@Component是让该类能够在其他地方被依赖使用,即使用@Autowired注释来创建实例。

        创建测试类:

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller  public class ConfigController {	@Autowired	private MyWebConfig conf;		@RequestMapping("/test") 	public @ResponseBody String test() {		return "Name:"+conf.getName()+"---"+"Age:"+conf.getAge(); 	}}

        注意:由于在Conf类上加了注释@Component,所以可以直接在这里使用@Autowired来创建其实例对象。

        访问:http://localhost:8088/test时得到:"Name:lvgang---Age:35"

转载于:https://my.oschina.net/sdlvzg/blog/1553472

你可能感兴趣的文章
远程主机探测技术FAQ集 - 扫描篇
查看>>
C++中调用python函数
查看>>
Nomad添加acl认证
查看>>
“TI门外汉”网路知识笔记一 OSI参考模型
查看>>
你不需要jQuery(五)
查看>>
DatanodeDescriptor说明
查看>>
ServlertContext
查看>>
eclipse编辑器生命周期事件监听
查看>>
Python WOL/WakeOnLan/网络唤醒数据包发送工具
查看>>
sizeof(long)
查看>>
pxe网络启动和GHOST网克
查看>>
2.5-saltstack配置apache
查看>>
django数据库中的时间格式与页面渲染出来的时间格式不一致的处理
查看>>
Python学习笔记
查看>>
java String
查看>>
renhook的使用
查看>>
Linux学习笔记(十二)--命令学习(用户创建、删除等)
查看>>
DOCKER windows 7 详细安装教程
查看>>
养眼美女绿色壁纸
查看>>
U盘启动盘制作工具箱 v1.0
查看>>