springboot application.yml配置学习

摘要:
主要参考:https://www.hangge.com/blog/cache/detail_2459.html二、项目主要内容1.controllerpackagecom.shuimutong.learn.springboot.yml。控制器;importcom.alibaba.fastjson。JSON;导入组织弹簧框架。web。ind。注释。GetMapping;导入组织弹簧框架。web。ind。注释。RequestParam;导入组织弹簧框架。web。ind。注释。RestController;importjavax.annotation。资源;@RestControllerpublicclassHelloController{@GetMappingpublicStringhello2(){return“你好,杰克!1)添加application-classroom.yml文件以从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配置学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇delphi 安卓配置教程[转]EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell (7)if 表达式

文件表达式if [ -f file ] 如果文件存在if [ -d … ] 如果目录存在if [ -s file ] 如果文件存在且非空if [ -r file ] 如果文件存在且可读if [ -w file ] 如果文件存在且可写if [ -x file ] 如果文件存在且可执行 整数变量表达式 -ne:(notequal)不相等 -gt:(great...

Jsuop Whitelist

Jsuop使用示例代码 使用jsoup HTMLCleaner方法进行清除,但需要指定一个可配置的Whitelist。http://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html (Jsoup whitelist文档) String unsafe = "<p><a href='ht...

使用OpenXml操作Excel,以下方法用于在添加列时修改Cell的CellReference属性。

以下方法实现了递增Excel中单元格的CellReference的功能,只支持两位字母。 1 public static string CellReferenceIncrement(string cellReference) 2 { 3 Match m1 = Regex.Match(cellReference, "^([A-Z]+)");...

AccountManager使用教程

API解读 这个类给用户提供了集中注冊账号的接口。用户仅仅要输入一次账户password后,就能够訪问internet资源。 不同的在线服务用不同的方式管理用户,所以account manager 为不同类型的账户提供了统一验证管理的方法,处理有效的账户的具体信息而且实现排序。比方Google,Facebook,Microsoft Exchange 各自...

C#.图片拖动处理(摘抄)

本文摘自博客园牛人吉日嘎啦。 通用权限管理系统组件源码里,有职员管理的功能,实现了直接可以把照片拖拽过来的功能,用起来会很方便。 想要控件支持拖拽,需要设置 AllowDrop 属性。 还需要写下面的2个事件。 参考代码如下,有需要的可以参考一下,把有需要的代码参考一下就可以了。 //---------------------------------...

.net学习笔记---xml序列化

 XML序列化是将对象的公共属性和字段转换为XML格式,以便存储或传输的过程。反序列化则是从XML输出中重新创建原始状态的对象。XML序列化中最主要的类是XmlSerializer类。它的最重要的方法是Serialize和Deserialize方法,它位于System.Xml.Serialization命名空间。 一、XML序列化基本要点   在本节开始之...