文档章节

springboot 通过注解读取yml

LikesWinds
 LikesWinds
发布于 2016/10/21 10:15
字数 270
阅读 370
收藏 0

test.yml

注意:层次结构必须用空格体现,不能用tab键,属性与值之间必须要有空格(数组也 -之后也必须有空格),

my:
  name: gao
  sex: man
  servers:
    - liu
    - google

config.java 

locations注解属性不推荐使用,不知替代方案是什么?

package com.skynet.model;

import java.util.ArrayList;
import java.util.List;
 
import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "my",locations = "classpath:test.yml")
public class Config {
    private List<String> servers = new ArrayList<>(); 
    private String name; 
    //@value("${my.sex}") //如果通过@value注解时,对应的配置文件必须含有此项配置,否则会报错
    private String sex;
    
    public List<String> getServers() {
        return this.servers;
    }
    public String getName() {
        return this.name;
    }
	public String getSex() {
		return this.sex;
	} 
	public void setName(String name) {
		this.name = name;
	}
    //maps, collections,arrays等的setter可省略,String不能省略, 
	public void setServers(List<String> servers) {
		this.servers = servers;
	}
	public void setSex(String sex) {
		this.sex = sex;
	} 
	@Override
	public String toString() {
		return "Config [servers=" + servers.toString() + ", name=" + name + ", sex=" + sex
				+ "]";
	}
}

 然后,就可以通过@Autowired注入了

package com.skynet.conf;
  

import java.util.Map;
import org.apache.ibatis.session.SqlSessionFactory; 
import org.assertj.core.groups.Properties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;   
import com.skynet.model.Config;
import com.skynet.model.MyProps;
import javax.sql.DataSource; 

@Configuration 
public class MyConfig  {
	@Autowired
	DataSource dataSource;  
	@Autowired    
	private Config yaml;  
	
	@Bean
	public String test() throws Exception { 
		System.out.println(yaml); 
		return null;
	}
 

}

测试结果:Config [servers=[liu, google], name=gao, sex=man]

© 著作权归作者所有

LikesWinds
粉丝 1
博文 4
码字总数 1805
作品 0
西安
私信 提问
【SpringBoot专题】快速体验

前言 在Spring 4推出来之前,我们的编码是存在一些问题,比如:大量的xml配置存在项目中,配置相当繁琐;整合第三方框架非常麻烦;开发效率和部署效率不高等问题。正是因为这些问题,Spring开...

张丰哲
2018/08/05
0
0
【SpringBoot2.0系列08】SpringBoot之redis数据缓存管理

【SpringBoot2.0系列01】初识SpringBoot 【SpringBoot2.0系列02】SpringBoot之使用Thymeleaf视图模板 【SpringBoot2.0系列03】SpringBoot之使用freemark视图模板 【SpringBoot2.0系列04】Spr...

余空啊
2018/08/20
0
0
SpringBoot_总结_01_配置详解

一、入口类和@SpringBootApplication SpringBoot项目通常有一个名为*Application的入口类,入口方法为此类的main方法。 1. @SpringBootApplication @SpringBootApplication注解是一个组合注解...

shirayner
2018/07/24
0
0
微服务 SpringBoot 2.0(二):配置文件解析

properties我用了好多年,你却让我用yml,这是什么鬼 —— Java面试必修 引言 上一篇介绍了Spring Boot的轻松入门项目构建,对Spring Boot的特性有了初步了解。但如果要想玩得很熟练的话就请...

阿郎_
2018/09/23
0
0
springboot原理—一步步分析springboot启动机制(starter机制)

前言 使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,分析s...

编程SHA
02/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Knative Service 之流量灰度和版本管理

本篇主要介绍 Knative Serving 的流量灰度,通过一个 rest-api 的例子演示如何创建不同的 Revision、如何在不同的 Revision 之间按照流量比例灰度。 部署 rest-api v1 代码 测试之前我们需要...

阿里云云栖社区
48分钟前
2
0
代码管理平台git

22.5/22.6 单机上使用git 22.7 简历远程仓库 22.8 克隆远程仓库 22.9 分支管理 22.10 远程分支管理 22.11 标签管理 22.12 git别名 22.13 搭建git服务器 22.14/22.15 安装gitlab 22.16 使用g...

tobej
48分钟前
1
0
压测某HR系统,遇到的坑

遇到的问题:当多个线程组公用一个公共模块功能的时候(登录生成的cookies信息,文件的写入操作),此时出现跨域问题 场景分析: 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的...

覃光林
49分钟前
2
0
学习k8s——基本架构

对部署流水线有了个大致的认知之后,开始学习k8s k8s的基本架构 kubernateskubernates这个单词起源于古希腊,是舵手的意思,所以它的logo既像一个渔网,又像一个罗盘。K8S是它的缩写,用“8...

啊哈关关
今天
1
0
好程序员分享JavaScrip数组去重操作实例小结

好程序员分享JavaScrip数组去重操作实例小结,这篇文章主要介绍了JavaScrip数组去重操作,结合实例形式总结分析了javascript针对数组的遍历、判断、去重等相关操作技巧,需要的朋友可以参考下。...

好程序员IT
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部