首页 > 其他分享 >SpringBoot配置文件

SpringBoot配置文件

时间:2023-05-22 22:22:55浏览次数:34  
标签:family SpringBoot 配置文件 private course student name

概述

初始化Spring Boot项目时,在resources目录下有一个默认的全局配置文件 application.properties。SpringBoot通过配置文件来修改SpringBoot自动配置的默认值

  • SpringBoot支持两种格式的配置文件 application.ymlapplication.properties

application.properties 写法

application.properties 配置文件写法如下

key = value

定义类型如下

  • 定义属性
    • student.name=王五
      student.age=23
  • 定义数组(list、set)
    • student.course=Japanese,Chinese,Russian
      
      或者如下方式
      student.course[0]=Japanese
      student.course[1]=Chinese
      student.course[2]=Russian
  • 定义map
    • student.family.fatherName=张三
      student.family.motherName=李四
      
      或者下面这种写法
      student.family={"fatherName":"张三","motherName":"李四"}
  • 引用其他配置属性
    • server.port=8080
      server.path=127.0.0.1:${server.port}

application.yml 写法

application.yml 配置文件的语法是:key: value使用冒号代替等号,同时冒号后面需要跟上一个空格符

定义类型如下

  • 定义属性
    • student:
        name: 王五
        age: 22
  • 定义数组(list、set):用 - 值表示数组中的一个元素
    • student:
        course:
          - English
          - Chinese
          
      或者行内写法
      student:
        course: [English,Chinese]
  • 定义map
    • student:
        family:
          fatherName: 张三
          mother: 李四
          
      或者行内写法
      student:
        family: {"fatherName":"张三","mother":"李四"}
  • 引用其他配置属性
    • server:
        port: 8080
        path: 127.0.0.1:${server.port} 

注意事项

  1. 字面直接写
  2. 字符串默认不用加上单引号或者双引号
    1.  双引号不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思,比如:name: "张三 \n 王五" 会出现换行
    2.  单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据 ,比如:name: '张三 \n 王五' 不会出现换行

读取配置文件的值

使用配置文件中的值,有以下几种方式

  • 使用 @Value
  • 使用 @ConfigurationProperties
@Data
@Configuration
public class Student{
    
    @Value("${student.name}")
    private String name;
    
    @Value("${student.age}")
    private Integer age;
    
    @Value("#{${student.family}}")
    private Map<String,String> family;
    
    @Value("${student.course}")
    private List<String> course;
    
}
@Data
@Configuration
@ConfigurationProperties(prefix = "student")
public class Student{
    
    private String name;
    
    private Integer age;
    
    private Map<String,String> family;
    
    private List<String> course;
    
}
  • @ConfigurationProperties 注解向 Spring Boot 声明该类中的所有属性和配置文件中相关的配置进行绑定 
    • prefix = ""声明配置前缀,将该前缀下的所有属性进行映射
  • @Component 或者@Configuration将该组件加入 Spring Boot 容器,只有这个组件是容器中的组件,配置才生效

自定义配置文件

除了在默认的 application 文件进行属性配置,还可以自定义配置文件,在配置类中使用@PropertySource注解注入该配置文件即可使用(该注解不支持注入yml文件)。例如如下配置文件 student.properties

student.name=王五
@Data
@Configuration
@ConfigurationProperties(prefix="student")
@PropertySource(value = "classpath:student.properties")
public class Student{
    private String name;
}

@ImportResource该注解导入 Spring 的 xml 配置文件,让配置文件里面的内容生效

  • @ImportResource(locations = {"classpath:StudentBeans.xml"})

标签:family,SpringBoot,配置文件,private,course,student,name
From: https://www.cnblogs.com/52-IT-y/p/17421890.html

相关文章

  • idea 中springboot同一服务启动不同端口号
    编辑服务配置2.copy原服务配置一份指定对应端口号启动服务......
  • 基于JAVA的springboot+vue“智慧食堂”设计与实现,食堂管理系统,附源码+数据库+lw文档+P
    1、项目介绍本系统的用户可分为用户模块和管理员模块两大界面组成。一个界面用于管理员登录,管理员可以管理系统内所有功能,主要有首页,个人中心,用户管理,菜品分类管理,菜品信息管理,留言板管理,系统管理,订单管理等功能;另一界面用于用户登录,用户进入系统可以实现首页,菜品信息,留言板,个人......
  • 关于springboot上传完文件读取时资源目录未更新的情况
    之前在实现教学视频上传功能的时候碰到了一个问题,那就是每上传完一个视频文件,页面找不到对应的路径,必须重新构建项目才能找到相应的文件今天在课堂上向老师咨询,才明白javaweb项目读取资源并不是读取实际的本地资源,而是读取target对应目录下的,每个项目都会生成一个对象的target目......
  • Springboot文件上传接口
    Springboot文件上传接口文件entiypackagecom.qingge.springboot.entity;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;importlombok.Data;@Data......
  • springboot添加@Scheduled定时任务多线程执行
    packagecom.example.demo;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.autoc......
  • springboot 接入通用tkmapper和pagehelper,boot starter版,mysql5.7,boot2.7.9
    1、pom文件引入<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency><dependency><groupId......
  • Flask相关配置参数,加载配置文件
    Flask相关配置参数,加载配置文件#导入Flask类fromflaskimportFlask#Flask函数接收一个参数__name__,它会指向程序所在的包app=Flask(__name__)#装饰器的作用是将路由映射到视图函数[email protected]('/')defindex():return'HelloWorld'#Flask应用程......
  • 基于springBoot框架JAVA语言汽车销售管理系统功能实现
    运行环境idea(推荐)、jdk1.8、mysql5.X(不能为8驱动不匹配)、maven项目技术springboot+vue项目描述本项目基于springboot以及Vue开发。针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等功能,提供经理和销售两种角色进行管理。1.安装好node环境2.......
  • SigNoz采集springboot应用metries、trace
    设置从repo的 Releases下载opentelemetry-javaagent.jar并将JAR放在您的首选目录中。JAR文件包含代理和检测库。opentelemetry-java-instrumentation添加-javaagent:path/to/opentelemetry-javaagent.jar和其他配置到您的JVM启动参数并启动您的应用程序:直接在启动命令上:java......
  • 基于springboot的宿舍管理系统实现宿管、后勤权限功能
    项目描述系统中的用户分为三类,分别为学生、宿管、后勤。这三类用户拥有不同的操作权限。系统中用到的技术包括Axios,Echarts,POI。特色功能有人性化的宿舍分配,可视化的账单管理、房间管理、记账管理,Excel文件上传后数据导入数据库等等。运行环境idea+mysql5.7+jdk1.8+maven3......