springboot application.yml配置学习
一、背景
为了更好的使用springboot,所以看一下application.yml配置这块。主要是看数据绑定这块。
主要参考:https://www.hangge.com/blog/cache/detail_2459.html
二、项目主要内容
1、controller
package com.shuimutong.learn.springboot.yml.controller; import com.alibaba.fastjson.JSON;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController
public class HelloController { @GetMapping("/hello2")
public String hello2() {
return "Hello, Jack!";
}
}
2、启动类
package com.shuimutong.learn.springboot.yml; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class YmlApplication {
public static void main(String[] args) {
SpringApplication.run(YmlApplication.class, args);
}
}
三、开始使用application.yml
1、从新建一个application.yml开始
在resources目录下新建application.yml,并写入以下内容,
server:
port: 8081
启动服务,从日志看出端口变更为8081,访问url说明配置生效。
2、在application.yml中添加几个属性看看
1)application.yml增加内容
my:
name: Big大
age: 20
info: name:${my.name}--age:${my.age}
2)新建一个MyData类
package com.shuimutong.learn.springboot.yml.bean; import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; @Component
@Data
public class MyData {
@Value("${my.name}")
private String name;
@Value("${my.age}")
private int age;
@Value("${my.info}")
private String info;
}
使用@Value注解绑定application.yml中的配置
3)HelloController增加对应的使用
@Resource
private MyData myData; @GetMapping("/getData")
public MyData getMyData() {
return myData;
}
4)启动服务,并访问对应的url
{"name":"Big大","age":20,"info":"name:Big大--age:20"}
说明值绑定正常。
3、单个属性绑定太麻烦?试试对象绑定
1)application.yml增加内容
classroom:
clazz: 一年级
grade: 3班
seatNum: 30
courses:
- 语文
- 数学
- 英语
- 化学
- 体育
- 美术
students:
- name: 张三
age: 8
- name: 李四
age: 9
2)编写对应的bean,并添加注解
//Classroom类
package com.shuimutong.learn.springboot.yml.bean; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import java.util.List; @Data
@Component
@ConfigurationProperties(prefix = "classroom")
public class Classroom {
private String clazz;
private String grade;
private int seatNum;
private List<String> courses;
private List<Student> students;
} //Student类
package com.shuimutong.learn.springboot.yml.bean; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; @Data
public class Student {
private String name;
private int age;
}
3)controller添加对应的方法
@Resource
private Classroom classroom; @GetMapping("/classInfo")
public Classroom getClassroomInfo() {
System.out.println("this is stu:" + JSON.toJSONString(student));
return classroom;
}
4)启动服务看看效果
{"clazz":"一年级","grade":"3班","seatNum":30,"courses":["语文","数学","英语","化学","体育","美术"],"students":[{"name":"张三","age":8},{"name":"李四","age":9}]}
符合预期。
4、配置太多,能不能拆成多个文件?
可以的!
1)增加application-classroom.yml文件
将内容从application.yml中抽出来。
2)修改application.yml
增加以下内容:
spring:
profiles:
active:
- classroom
配置那块你没看错,yml文件名一定要以“application-”开头。
3)启动程序验证
5、还有没有其他招数?
有,请移步git:https://github.com/shuimutong/spring_learn/tree/master/spring_boot/yml
springboot application.yml配置学习的更多相关文章
- SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例
SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例 这是一个简单的SpringBoot整合实例 这里是项目的结构目录 首先是pom.xml ...
- springboot application.properties配置大全
springboot application.properties配置大全 官方文档 https://docs.spring.io/spring-boot/docs/current/reference ...
- SpringBoot static修饰的字段/方法如何获取application.yml配置
SpringBoot的application.yml一种特殊的应用场景,一般我们获取application.yml的配置文件只要@Value就可以获取到值了,但是如果是static修饰的字段肯定就不能 ...
- Linux下 nohup后台运行springboot jar 包时,使用指定的 application.yml配置
jar 包启动时指定配置文件 application.yml nohup java -jar -Dserver.port=8080 wx-member-card-0.0.1-SNAPSHOT.war ...
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
趁今天有时间整理了一下 启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 jav ...
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active(转)
趁今天有时间整理了一下 启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 jav ...
- springboot 读取 yml 配置的几种方式
前言:在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springbo ...
- SpringBoot application.yml logback.xml 多环境
启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 java -jar app.j ...
- SpringBoot的yml配置
Spring Boot的yml配置 #开发配置 spring: data: solr: host: http://localhost:6789/solr/mote mvc: view: # 页面默认前 ...
随机推荐
- 对select函数的理解
对select函数的理解 1. 处理多个socket链接的方法 阻塞模式下服务端要解决多个客户链接的问题的3个思路: 每个客户端的socket对应一个内核线程,在这个线程内部进行阻塞的read 单线程 ...
- Shiro简单加密服务
编码/加密 在涉及到密码存储问题上,应该加密 / 生成密码摘要存储,而不是存储明文密码.比如之前的 600w csdn 账号泄露对用户可能造成很大损失,因此应加密 / 生成不可逆的摘要方式存储. Sh ...
- maven依赖冲突以及解决方法
什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包, ...
- 入门大数据---Kafka消费者详解
一.消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka 之所以要引入消费者群组这个概念是因为 Kafka 消费者经 ...
- 谈反应式编程在服务端中的应用,数据库操作优化,提速 Upsert
反应式编程在客户端编程当中的应用相当广泛,而当前在服务端中的应用相对被提及较少.本篇将介绍如何在服务端编程中应用响应时编程来改进数据库操作的性能. 开篇就是结论 接续上一篇<谈反应式编程在服务端 ...
- 六.url配置
1.Django 如何处理一个请求 (1). django 加载 ROOT_URLCONF(settings.py中配置的) 指定的模块,并寻找可用的urlpatterns变量.它是 django.c ...
- mysql主从搭建操作
1.搭建说明准备工作:主从库已安装mysql软件以及xtracbackup备份工具.具体操作可参见mysql rpm安装文档. 介质 版本操作系统 Red Hat Enterprise Linux S ...
- 4 个好用的 Linux 监控工具
下面是 Linux 下 4 个日常使用率非常高的监控工具,可以帮助我们准确快速的诊断系统问题. 1. iotop 如果你想知道某些进程使用了多少你宝贵的 I/O 资源,那么就使用 iotop 吧. i ...
- Conda太慢?试试这个加速工具!
1 简介 Conda作为使用最为广泛的数据科学环境管理工具,可以协助我们很方便的完成创建管理环境.下载安装第三方库.软件包等操作,但其在下载资源的过程中下载速度时常令人捉急,即使使用连接速度更快的国内 ...
- postcss.config.js not found
https://github.com/ElemeFE/element/issues/10249