1、应用配置文件(.properties或.yml)

.properties在配置文件中直接写:

name=Isea533
server.port=8080

.yml格式的配置文件如:

name: Isea533
server:
port: 8080

属性配置文件的位置

spring会从classpath下的/config目录或者classpath的根目录查找application.propertiesapplication.yml

/config优先于classpath根目录

2、java中获取配置信息

@Value(“${xxx}”)

这种方式是最简单的,通过@Value注解可以将属性值注入进来。

假如我们要配置一个类别下的多个属性,

比如mysql的jdbc连接配置

mysql.jdbcName=com.mysql.jdbc.Driver

mysql.dbUrl=jdbc:mysql://localhost:3306/db_diary

mysql.userName=root

mysql.password=123456

我们贴到application.properties

然后按照前面的方案,我们在Controller里写四个属性;

package com.java1234;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HelloWorldController { @Value("${helloWorld}")
private String helloWorld; @Value("${mysql.jdbcName}")
private String jdbcName; @Value("${mysql.dbUrl}")
private String dbUrl; @Value("${mysql.userName}")
private String userName; @Value("${mysql.password}")
private String password; @RequestMapping("/hello")
public String say(){
return helloWorld;
} @RequestMapping("/showJdbc")
public String showJdbc(){
return "mysql.jdbcName:"+jdbcName+"<br/>"
+"mysql.dbUrl:"+dbUrl+"<br/>"
+"mysql.userName:"+userName+"<br/>"
+"mysql.password:"+password; }
}

@ConfigurationProperties

Spring Boot 可以方便的将属性注入到一个配置对象中。例如:

my.name=Isea533
my.port=8080
my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com

对应对象:

@ConfigurationProperties(prefix="my")
public class Config {
private String name;
private Integer port;
private List<String> servers = new ArrayList<String>(); public String geName(){
return this.name;
} public Integer gePort(){
return this.port;
}
public List<String> getServers() {
return this.servers;
}
}

Spring Boot 会自动将prefix="my"前缀为my的属性注入进来。

Spring Boot 会自动转换类型,当使用List的时候需要注意在配置中对List进行初始化!

Spring Boot 还支持嵌套属性注入,例如:

name=isea533
jdbc.username=root
jdbc.password=root
...

对应的配置类:

@ConfigurationProperties
public class Config {
private String name;
private Jdbc jdbc;
class Jdbc {
private String username;
private String password;
//getter...
} public Integer gePort(){
return this.port;
}
public Jdbc getJdbc() {
return this.jdbc;
}
}

jdbc开头的属性都会注入到Jdbc对象中。

在@Bean方法上使用@ConfigurationProperties

@ConfigurationProperties(prefix = "foo")
@Bean
public FooComponent fooComponent() {
...
}

Spring Boot 会将foo开头的属性按照名字匹配注入到FooComponent对象中。

3、属性名匹配规则

例如有如下配置对象:

@Component
@ConfigurationProperties(prefix="person")
public class ConnectionSettings { private String firstName; }

firstName可以使用的属性名如下:

  1. person.firstName,标准的驼峰式命名
  2. person.first-name,虚线(-)分割方式,推荐在.properties.yml配置文件中使用
  3. PERSON_FIRST_NAME,大写下划线形式,建议在系统环境变量中使用 

spring-boot 应用配置文件(.properties或.yml)的更多相关文章

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

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

  2. Spring boot 全局配置 properties或者yml文件报错

    主要问题是没有扫描到配置文件 在pom文件里面<build>    </build>中加上以下代码就可以保证能扫描到了 <resources> <resour ...

  3. Spring Boot 的配置文件application.properties

    Spring Boot 中的application.properties 是一个全局的配置文件,放在src/main/resources 目录下或者类路径的/config下. 作为全局配置文件的app ...

  4. 一:Spring Boot 的配置文件 application.properties

    Spring Boot 的配置文件 application.properties 1.位置问题 2.普通的属性注入 3.类型安全的属性注入 1.位置问题 当我们创建一个 Spring Boot 工程时 ...

  5. Spring Boot属性配置文件:application.properties 详解

    学习资料 网址 官方说明文档 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-pro ...

  6. Spring Boot 核心配置文件 bootstrap & application

    Spring Boot 核心配置文件 bootstrap & application 1.SpringBoot bootstrap配置文件不生效问题 2.bootstrap/ applicat ...

  7. spring boot全局配置文件优先级

    前两篇介绍的application配置文件,即为spring boot全局配置文件.那么spring boot加载配置文件的时候,怎么确定加载哪个目录下哪个文件呢? spring boot默认的配置文 ...

  8. Spring Boot之配置文件值注入(@ConfigurationProperties)

    前言:Spring Boot配置文件值的注入有两种方式,分别是 @ConfigurationProperties @Value 这里我们使用第一种 首先我们创建一个application.yml文件, ...

  9. Spring Boot(二) 配置文件

    文章导航-readme 一.配置Spring Boot热部署     技术的发展总是因为人们想偷懒的心理,如果我们不想每次修改了代码,都必须重启一下服务器,并重新运行代码.那么可以配置一下热部署.有了 ...

  10. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件

    精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件 内容简介:本文介绍 Spring Boot 的配置文件和配置管理,以及介绍了三种读取配置文 ...

随机推荐

  1. python 爬虫登录保存会话去获取只有登录能获取的数据

    #!/usr/bin/env python # -*- coding: utf-8 -*- # import ConfigParser import datetime import sys impor ...

  2. [LeetCode 题解]: Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  3. duilib入门简明教程 -- XML基础类(7)

    现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样 ...

  4. thinkphp里数据嵌套循环

    做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的. thinkphp官网给出的文档为: <volist name="list" id=" ...

  5. C#设计模式--工厂模式之简单模式

    简单工厂模式定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品 ...

  6. 菜鸟的Xamarin.Forms前行之路——windows下VS运行ios模拟器调试

    在Xamarin.Forms项目中,运行安卓模拟器是很方便的,但是想要运行IOS模拟器,相对而言是困难一点. 在参考一些资料后,发现很多是与Xamarin.studio有关的方法,尝试了许久没有成功. ...

  7. AOP原理解析及Castle、Autofac、Unity框架使用

    转自:https://www.cnblogs.com/neverc/p/5241466.html AOP介绍 面向切面编程(Aspect Oriented Programming,英文缩写为AOP), ...

  8. ORM之PetaPoco

    近端时间从推酷app上了解到C#轻微型的ORM框架--PetaPoco.从github Dapper 开源项目可以看到PetaPoco排第四 以下是网友根据官方介绍翻译,这里贴出来. PetaPoco ...

  9. select2 模糊查询远程数据

    详细:http://www.cnblogs.com/linJie1930906722/p/6060370.html $("#name").select2({ language: & ...

  10. [BZOJ5212][ZJOI2018]历史

    传送门(洛谷) 人生第一道九条可怜……神仙操作…… 看着题解理解了一个早上才勉强看懂怎么回事…… 简化一下题目就是:已知每一个点access的总次数,求一个顺序使虚实边转化的次数最多 考虑一下,对于x ...