且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Spring Boot (初级知识点)(二)

更新时间:2022-01-01 16:46:21

③. 入门案列详解


3>. 入门案列详解


1. 父项目


Spring Boot的版本仲裁中心:以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)


Spring Boot (初级知识点)(二)


2. 启动器(依赖)


  • ①. spring-boot-starter-web:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件


  • ②. Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器


Spring Boot (初级知识点)(二)


3. 主程序类,主入口类


  • ①. @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;


  • ②. 将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器[ 掌握 ]


Spring Boot (初级知识点)(二)


④. SpringBoot配置


4>. SpringBoot配置


①. 配置文件分类


1. 配置文件分类


  • ①. SpringBoot提供了2种配置文件类型:properties 和 yml/yaml


  • ②. 默认配置文件名称:application


  • ③. 在同一级目录下优先级为:properties>yml>yaml


②. YAML


2.YAML


  • ①. YAML全称是 YAML Ain`t Markup Language。YAML是一种直观能够被电脑识别的数据数据序列化格式,并且容易被人阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如:C/C++ ,JAVA ,PHP等。YAML文件扩展名可以使用.yml 或者 .yaml


  • ②. YAML的基本语法


基本语法:


(1).大小写敏感

(2).数据值前边必须有空格,作为分隔符

(3).使用缩进表示层级关系

(4).缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层级混乱)

(5).缩进的空格数目不重要,只要幸同层级的元素左侧对齐即可

(6).# 表示注释,从这个字符一直到行尾,都会被解析器忽略


Spring Boot (初级知识点)(二)


③. YAML:数据格式


3种数据格式:


Spring Boot (初级知识点)(二)


④. 参数引用:


Spring Boot (初级知识点)(二)


③. 读取配置的三种方式


3. 读取配置的三种方式


  • ①. Value


  • ②. Environment


  • ③. ConfigurationProperties(prefix=``)


application.yml
server:
  port: 8888
name: abc
#1.对象(map)键值对的集合
person:
  name: xiaozhi #${name}
  age: 24
  address:
    - beijing
    - shanghai
#行内写法
person2: [name: xiaozhi2,age: 24Two]
#2.数组
address:
  - beijing
  - shanghai
#行内写法
address2: [beijing2,shanghai2]
#3.纯量
msg1: 'hello \n word'
msg2: "hello \n word"


@SuppressWarnings("all")
@RestController
public class HelloController {

    /*1.value*/
    @Value("${name}")
    private String name;
    @Value("${person.name}")
    private String name2;
    @Value("${address[0]}")
    private String address1;
    @Value("${msg1}")
    private String msg1;
    @Value("${msg2}")
    private String msg2;

    /*2.Environment*/
    @Autowired
    private Environment env;

    /*3.ConfigurationProperties*/
    @Autowired
    private Person person;
    @GetMapping("/hello")
    public String hello(){
        /*name abc*/
        System.out.println(name);
        /*person name abc*/
        System.out.println(name2);
        /*address[0] beijing*/
        System.out.println(address1);
        /*msg1 ''  hello \n word*/
        System.out.println(msg1);
        /*msg2 ""*/
        /**
        hello
         word
        */
        System.out.println(msg2);
        System.out.println("-------");
        /*xiaozhi*/
        System.out.println(env.getProperty("person.name"));
        /*shanghai*/
        System.out.println(env.getProperty("address[1]"));

        /*3.ConfigurationProperties(prefix="")*/
        System.out.println(person);
        /*address*/
        String[] address = person.getAddress();
        for (String s : address) {
            System.out.println(s);
        }
        return "HelloSpringBoot";
    }
 }