SpringBoot基础配置

SpringBoot基础配置,第1张

SpringBoot基础配置

文章目录
  • SpringBoot基础配置
    • 1. 属性配置
    • 2. 配置文件
    • 3. yaml
      • 1. 介绍
      • 2. 语法规则
      • 3. 数据读取

SpringBoot基础配置 1. 属性配置

SpringBoot默认配置文件application.properties 通过键值对配置对应属性

SpringBoot中导入对应的starter后,提供对应的属性配置

Idea提供属性提示,可通过关键字得到属性名

例如:

  • 修改服务器端口:

    server.port=80

  • 关闭运行日志图标:

    spring.main.banner-mode=off

  • 设置日志相关:

    logging.level.root=debug

SpringBoot内置属性可通过官方文档中参考文档的Application Properties 查询

2. 配置文件

1.SpringBoot提供三种配置文件格式

  • properties(默认格式)

    server.port=80
    
  • yml(主流格式)

    server:
      port: 81
    
  • yaml

    server:
      port: 82
    

2.SpringBoot配置文件加载顺序

**application.properties ** > application.yml > application.yaml

​ 注意:

不同配置文件中相同配置按加载优先级相互覆盖,不同配置全部保留

3.指定SpringBoot配置文件

在未指定为配置文件的yml或yaml中书写属性时,Idea将不会提供属性提示

​ 解决步骤:

  • Setting -> Project Structure -> Facets
  • 选中对应项目
  • Customize Spring Boot
  • 选择配置文件
3. yaml 1. 介绍

YAML (YAML Ain’t Markup Language)是一种数据序列化格式

  • 优点:
    • 容易阅读
    • 容易与脚本语言交互
    • 以数据为核心,重数据格式
  • YAML文件扩展名
    • .yml(主流)
    • .yaml
2. 语法规则
  • 大小写敏感

  • 属性层级关系使用多行描述,每行结尾用冒号结束

  • 用缩进表示层级关系且不允许使用Tab,同层级左侧对其

  • 属性值与属性名间用冒号加空格作为分隔

  • # 表示注释

  • 核心规则: 数据前用空格与冒号隔开

  • 字面值表示方式:
  boolean: TRUE 				#TRUE,true,True,FALSE,false,False均可
  float: 3.14 				#6.8523015e+5 #支持科学计数法
  int: 123 					#0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
  null: ~ 					#使用~表示null
  string: HelloWorld 			#字符串可以直接书写
  string2: "Hello World" 		#可以使用双引号包裹特殊字符
  date: 2018-02-17 			#日期必须使用yyyy-MM-dd格式
  datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区
  • 数组表示方式:
subject:
  - Java
  - 前端
  - 大数据

enterprise:
  name: itcast
  age: 16
  subject:
    - Java
    - 前端
    - 大数据

likes: [王者荣耀,刺激战场] 			#数组书写缩略格式

users: 							 #对象数组格式
   - name: Tom
     age: 4
   - name: Jerry
     age: 5

users: 							 #对象数组格式二
   -
     name: Tom
     age: 4
   -
     name: Jerry
     age: 5
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]  #对象数组缩略格式
3. 数据读取

使用@Value读取单个数据,属性名引用方式: ${一级属性名.二级属性名}

  • 在配置文件中可以用${属性名}方式引用属性值

    baseDir: /usr/local/fire
    center:
      dataDir: ${baseDir}/data
      tmpDir: ${baseDir}/tmp
      logDir: ${baseDir}/log
      msgDir: ${baseDir}/msgDir
    
  • 属性中出现特殊字符可用双引号包裹作为字符解析

    lesson: "Springtbootnlesson"

封装全部数据到Environment对象

  • 使用Environment对象封装全部配置信息

  • 使用@Autowired自动装配数据到Environment对象中

    • 配置数据

      lesson: SpringBoot
      
      server:
        port: 82
      
      enterprise:
        name: itcast
        age: 16
        tel: 4006184000
        subject:
          - Java
          - 前端
          - 大数据
      
    • 读取数据

       

    @RestController
    @RequestMapping("/books")
    public class BookController {
    @Autowired
    private Environment env;
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
    System.out.println(env.getProperty(“lesson”));
    System.out.println(env.getProperty(“enterprise.name”));
    System.out.println(env.getProperty(“enterprise.subject[0]”));
    return “hello , spring boot!”;
    }
    }

自定义对象封装指定数据

  • 使用**@ConfigurationProperties**注解绑定配置信息到封装类

  • 封装类需要定义为Spring管理的Bean,才能完成属性注入

    • 配置数据

      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
        username: root
        password: root
      
    • 读取数据

      @Component
      @ConfigurationProperties(prefix = "datasource")
      public class DataSource {
          private String driverClassName;
          private String url;
          private String userName;
          private String password;
      }
      

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5583323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存