③. 入门案列详解
3>.
入门案列详解
1.
父项目
Spring Boot的版本仲裁中心:以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)
2.
启动器(依赖)
- ①. spring-boot-starter-web:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件
- ②. Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器
3.
主程序类,主入口类
- ①. @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;
- ②. 将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器
[ 掌握 ]
④. 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).# 表示注释,从这个字符一直到行尾,都会被解析器忽略
③. YAML:数据格式
3种数据格式:
④. 参数引用:
③. 读取配置的三种方式
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"; } }