勾选Spring Web自动添加Spring Web dependencies
Spring和SpringBoot对比
- 去除一些不想看的文件:
- settings->file types->ignored files and folders
SpringBoot程序优点
- 起步依赖(简化依赖配置)
- 自动配置(简化常用工程相关配置)
- 辅助功能(内置服务器)
parent
- 开发springboot要继承spring-boot-starter-parent
- spring-boot-starter-parent中定义了若干个依赖管理
- 继承parent模块可以避免多个依赖使用相同的技术时出现依赖版本冲突
- 继承parent的形式也可以采用引入依赖的形式实现效果(maven是单继承 继承了一次就不能再继承了)
starter
-
springboot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
- 对比parent
所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少冲突的目的 spring-boot-starter-parent各版本间存在着诸多坐标版本不同
-
实际开发
- 使用任意坐标时,仅书写GAV中的G和A,V由springboot提供,除非springboot未提供对应版本V
- 如果发生坐标错误,再指定Version(要小心版本冲突)
引导类
- SpringBoot工程提供引导类用来启动程序
- SpringBoot工程启动后创建并初始化Spring容器
- SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
- SpringBoot工程运行后初始化Spring容器,扫描引导类所在的包加载bean
辅助功能
-
内嵌的tomcat服务器是SpringBoot辅助功能之一
-
让tomcat的容器以对象的形式在springboot的容器中运行起来
-
如果想把tomcat换成Jetty:只需要用exclusion把tomcat排除,然后加入jetty的依赖
内置服务器
- tomcat(默认)apache出品,粉丝多,应用面广,负载了若干较重的组件
- jetty 更轻量级,负载性能远不及tomcat
- undertow 负载性能勉强跑赢tomcat,但大多数人还是会选择tomcat
REST风格
-
REST(Representational State Transfer),表现形式转换
-
优点
- 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
- 书写简化
- 根据REST风格对资源进行访问成为RESTful
基础配置
- 属性配置
resource下面的application.properties配置文件
- 直接使用key-value形式书写
可以在官网的 quick start中参考文档第一项查看所有的配置以及说明
用什么技术才写什么配置
- SpringBoot中导入对应的starter后,提供相对应的配置属性
- 书写SpringBoot配置采用关键字+提示形式书写
三种配置文件类型
- application.properties
- application.yml(主要用这个)
- application.yaml
如果都存在 优先级properties>yml>yaml
- 如果有相同的属性 按照优先级覆盖
- 如果是不同的属性 全部都会保留下来
属性提示消失问题解决
出现提示是idea的功能 而不是springboot的功能,不弹提示说明idea并不认为它是个配置文件 那么只需要把它设置为配置文件就可以了
yaml
-
YAML(YAML Ain't Markup Language),一种数据序列化格式
-
优点
- 容易阅读
- 容易与脚本语言交互
- 以数据为核心,重数据轻格式
-
YAML文件扩展名
- .yml(主流)
- .yaml
-
yaml语法规格
核心规则:数据前面要加空格与冒号隔开
读取yaml中的单一数据变量
yaml文件中的变量引用
- 如果其中有转义字符,需要用双引号包裹才能生效
读取yaml的全部属性数据
@Autowired
Environment env;
//把全部属性封装进这个对象