springboot学习基础入门

springboot基础入门

一、适用范围

仅适用于需要基础框架的国企、项目设计等,只针对于最基础的看懂springboot框架

二、YAML语法

  1. 存储对象
bash 复制代码
# 方法一:
person1:
   name: zhangsan
person2:
   name: zhangsan
   age: 20
# 方法二:
person2: {name: 张三,age: 20}
# 一定要有两个空格
  1. 数组
bash 复制代码
address:
 - beijing
 - shanghai # 使用 -表示数组的每一个元素
 # 行内写法
 address:[beijing,shanghai]
  1. 纯量(类似常量)
bash 复制代码
msg1: 'hello \n word'  # 单引号不会识别转义字符,输出hello \n word
msg1: "hello \n word"  # 双引号会识别转义字符,输出hello 换行 word
  1. 参数引用
bash 复制代码
name: abc

person:
  name: ${name}  # 实际就是abc
  age: 20
  1. 小结:
    基本语法:
    ① 大小写敏感
    ② 数据值之前必须有空格,作为分隔符
    ③ 使用空格缩进表示层级关系,相同缩进表示同一级

三、读取配置内容

1. 使用@value方法

(1) 第一组

在java目录下面写.java文件

bash 复制代码
@RestController
public class HelloController {
   @Value("${name}") # 这里的name必须与yaml文件一致
    private String name;  # 这里的name不用与yaml一致
    }
# 调用name值并且打印出来
public String hello2() {
        System.out.println(name);    
        }

yaml文件

bash 复制代码
name: abc

(2) 第二组

bash 复制代码
@RestController
public class HelloController {
    @Value("${person.name}")
    private String name2;

    @Value("${person.age}")
    private int age;
    }
public String hello2() {
          System.out.println(name2);
        System.out.println(age); 
        }

yaml文件

bash 复制代码
person:
  name: zhangsan
  age: 20

第三组:数组访问

bash 复制代码
@RestController
public class HelloController {
    @Value("${address[0]}")
    private String address1;
    }
   public String hello2() {
            System.out.println(address1);
        } 

yaml文件

bash 复制代码
  address:
  - beijing
  - shanghai

2. 使用environment方法

.java文件

bash 复制代码
@Autowired
    private Environment env;
@RequestMapping("/hello2")
    public String hello2() {

        System.out.println(env.getProperty("person.name"));
        System.out.println(env.getProperty("address[0]"));
    
        }

3. @configuraProperties方法

首先定义一个person类

bash 复制代码
package com.itheima.springbootinit;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private int age;
    private String[] address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String[] getAddress() {
        return address;
    }

    public void setAddress(String[] address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

.java文件

bash 复制代码
@RestController
public class HelloController {
  @Autowired
    private Person person;

@RequestMapping("/hello2")
    public String hello2() {
        System.out.println(person);
        String[] address = person.getAddress();
        for (String s : address) {
            System.out.println(s);
        }
}
相关推荐
moxiaoran57532 小时前
uni-app学习笔记二十九--数据缓存
笔记·学习·uni-app
pop_xiaoli4 小时前
OC—UI学习-2
学习·ui·ios
Lin Hsüeh-ch'in4 小时前
Vue 学习路线图(从零到实战)
前端·vue.js·学习
烛阴4 小时前
bignumber.js深度解析:驾驭任意精度计算的终极武器
前端·javascript·后端
服务端技术栈4 小时前
电商营销系统中的幂等性设计:从抽奖积分发放谈起
后端
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十五期-URL重定向模块)
学习·安全·web安全·渗透测试·网络安全学习
你的人类朋友5 小时前
✍️Node.js CMS框架概述:Directus与Strapi详解
javascript·后端·node.js
面朝大海,春不暖,花不开5 小时前
自定义Spring Boot Starter的全面指南
java·spring boot·后端
HelloWord~5 小时前
SpringSecurity+vue通用权限系统
vue.js·spring boot
钡铼技术ARM工业边缘计算机6 小时前
【成本降40%·性能翻倍】RK3588边缘控制器在安防联动系统的升级路径
后端