Spring Boot 02

YAMl配置文件:

Spring Boot有两种配置文件 application.properties  和  application.yml  ,名称是固定不变的,yaml是一种比 xml  json 更适合的配置文件,不用关注属性的开闭。

1 语法格式:

key:(空格)value       必须要有空格,以换行、空格的缩进来代表层级关系,并且大小写敏感

server:
  port: 8080

2 值的写法:

字面量:普通数值(数字,字符串,布尔)

map、list、 对象:

person:
  lastName: yanghui
  age: 21
  birthday: 1998/08/02
  maps: {x: yang,n: huiyi}
  list:
    - yang
    - huiyi
  dog:
    name: 小狗
    age: 3

3 配置文件自动注入: @ConfigurationProperties(prefix = "person") 注解:告诉springboot将本类的所有属性和配置文件的内容进行绑定; prefix = "person" 和person进行绑定

          @Component 注解:把类加入到 容器中,这样才能使用ConfigurationProperties

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private Date birthday;

    private Map<String,Object> maps;
    private List<Object> list;
    private Dog dog;

    ...

4 添加配置文件处理器:想要让上边的注释生效,需要添加配置文件处理器。

官方文档:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor

        <!--配置文件处理器:当编写配置文件的时候会有提示。-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

5 其他:如果只是要在配置文件中简单获取 某个值,则可以使用 @Value

    @Value("${person.lastName}")
    private  String lastName;

6 其他2:加载类路径下的其他配置文件 @PropertySource(value = {"classpath:person.properties"}),原本不指定会指向application.properties。

@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    /**
     * 如果只是要在配置文件中简单获取 某个值,则可以使用 @Value
     * @Value("${person.lastName}")
     */
    private  String lastName;
    private Integer age;
    private Date birthday;

    private Map<String,Object> maps;
    private List<Object> list;
    private Dog dog;

加载spring的配置文件@ImportResource(locations = {"classpath:beans.xml"}) 加在主程序上边的注释   -----》不推荐使用。

@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

推荐使用:@Configuration  来标注一个类是配置类,用来代替上边的spring配置文件

7 Profile 多环境支持: 使用多种配置文件,生产环境下的配置文件,测试环境下使用的配置文件。

具体详细查一下课程笔记的文档

8 配置文件可以位于不同位置:不同位置配置文件的优先级不同,高优先级的配置文件会覆盖相同内容的配置文件,但是不相同的会形成互补

当前项目的根目录 里的 config

当前项目的根目录

resource资源文件夹 里的 config

resource资源文件夹

–?le:./con?g/
–?le:./
–classpath:/con?g/
–classpath:/

*从上往下优先级降低*

官方配置文件文档:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/common-application-properties.html

解决配置文件 application.properties 乱码问题: 在settings查找file Encodings  ;选择utf-8   ,勾选运行时编译成 ascii 编码。

原文地址:https://www.cnblogs.com/Lemonades/p/11621792.html

时间: 2024-10-10 01:10:06

Spring Boot 02的相关文章

Spring Boot 1.4.0 Release Notes 更新日志-02

Spring Framework 4.3 Spring Boot 1.4 builds on and requires Spring Framework 4.3. There are a number of nice refinements in Spring Framework 4.3 including new Spring MVC @RequestMapping annotations. Refer to the Spring Framework reference documentati

《02.Spring Boot连载:Spring Boot实战.Spring Boot核心原理剖析》

在上节中我们通过了一个小的入门案例已经看到了Spring Boot的强大和简单之处.本章将详细介绍Spring Boot的核心注解,基本配置和运行机制.笔者一直认为:精通一个技术一定要深入了解这个技术帮助我们做了哪些动作,深入理解它底层的运行原理,只有达到这个目标才可以熟练使用框架,最终达到融会贯通的目的. 一.启动类与@SpringBootApplication Spring Boot的项目一般都会有注解*Application标注的入口类,入口类中会有一个main方法,main方法是一个标准

Spring Boot干货系列:(二)配置文件解析

Spring Boot:配置文件解析   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties. 正文 Spring Boot使用了一个全局的配置文件applicat

Spring boot中使用springfox来生成Swagger Specification小结

Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是http://domain:port/v2/api-docs获取的么. 因为如果使用group,api json描述文件就不是上面的情况哦 https://github.com/springfox/springfox-demos/tree/master/boot-swagger 再小结一下swagge

spring boot?Swagger2文档构建及单元测试

首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容. @Controller:修饰class,用来创建处理http请求的对象 @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Contro

spring boot学习总结(一)-- 基础入门 Hello,spring boot!

写在最前 SpringBoot是伴随着Spring4.0诞生的: 从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架: SpringBoot帮助开发者快速启动一个Web容器: SpringBoot继承了原有Spring框架的优秀基因: SpringBoot简化了使用Spring的过程.  Spring Boot解决哪些问题??? Spring Boot使编码变简单,使配置变简单,使部署变简单,使监控变简单 下面正式开始!!!快速入门!!! 1.构建Mav

搭建spring boot+elasticsearch+activemq服务

目前时间是:2017-01-24 本文不涉及activemq的安装 需求 activemq实时传递数据至服务 elasticsearch做索引 对外开放查询接口 完成全文检索 环境 jdk:1.8 spirng boot:1.4.3.RELEASE elasticsearch:2.4.3 activemq:5.13.2 ES插件 head:版本好像无太大差别 能查数据就行 analysis-ik:1.10.3 search-guard-2:2.4.3.9 search-guard-ssl:2.4

spring boot中使用@Async实现异步调用

什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序. 同步调用 下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) package com.dxz.demo1; import java.util.Random; import org.sprin

微服务架构实践 - 你只懂docker与spring boot就够了吗?

微服务架构实践 - 你只懂docker与spring boot就够了吗? 作者 浮云发发 已关注 2017.02.27 02:50* 字数 2613 阅读 2583评论 6喜欢 35赞赏 2 微服务并不是单独存在的,为了更好地实现微服务架构,需要整合许多组件混搭使用,方能打通任督二脉,天下无敌.网上很多大拿讲了微服务治理的内容,也有人单方面讲微服务的,比如spring boot与docker,本文着重于组件选型的较量,也积累了我们团队多次PK的精华:这些组件包括spring boot.sprin