7.2. SpringBoot简介
- Spring组件代码虽然是轻量级的,但是配置是重量级的,尤其是需要大量的xml配置,后来引入了基于注解的组件扫描,虽然减少了很多xml配置,但是还是需要很多xml配置的,并且项目的依赖管理也很麻烦,需要分析导入和其他依赖有关系的坐标时,一旦选错了依赖的版本,就会产生不兼容问题影响我们的开发进度。SpringBoot就是为了简化xml的配置
- SpringBoot的启动器,实际上就是一个依赖,其中包含了整个技术的相关 jar 包,还包含了这个技术的自动配置,以前绝大多数 XML 配置都不需要配置了。启动器中自动配置无法实现所有内容的自动配置,在使用 SpringBoot 时还需要进行少量的配置在properties 或 yml 中。
- 启动类与启动器的区别:启动类是用来启动项目是,是一个入口 ; 启动器可以理解为是一堆依赖的集合,而且帮我们写好了自动配置的信息
- SpringBoot的特征
- 可以快速创建独立的Spring应用程序
- 在SpringBoot中直接嵌入了tomcat,Jetty,Undertow等Web容器,在使用时不需要部署war项目
- 提供自己的启动器依赖,简化了项目的构建以及配置
- 尽量会自动配置的Spring以及第三方库
- 绝对没有代码生成也不需要xml配置文件
- 避免大量的 Maven 导入和各种版本冲突
- SpringBoot的核心 : 起步依赖以及自动配置
- 起步依赖:起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
- 自动配置:SpringBoot 的自动配置是一个运行时(应用程序启动时)的过程,考虑了众多因素,才决定 SpringBoot 配置应该用哪个,不该用哪个。该过程是 SpringBoot 自动完成的。
- SpringBoot一些小细节解释:
- SpringBoot 开发 web 应用,不需要打成 war 包,jar 包的方式即可,因为其内嵌了 tomcat
- SpringBoot是一个jar类型的项目,启动的时候就需要一个启动类来完成(普通类main方法,注解),但是级别要高点,因为启动类在哪个包,就会自动扫描这个包以及它的子类
- 项目默认运行在 tomcat 服务器中,端口号是 8080,访问路径是 /
@SpringBootApplication
SpringApplication.run(MainApplication.class, args);
-
- 编写 SpringBoot 项目的 pom 文件时,需要让该项目继承 SpringBoot 的项目,继承之后就有了各种依赖的版本。
- 如果我们的项目已经继承了某个项目,那就不能再继承 SpringBoot 项目了,可以通过添加依赖的方式引入SpringBoot 父项目
- 在项目中使用什么技术,就引入该技术的启动器
7.2. SpringBoot配置文件
- 配置文件种类 :SpringBoot配置文件叫做application,有两种格式properties或者是yml
- application.properties :里面写的是键值对数据 ,每个配置的键要写完整,有点冗
- application.yml :有一些基本要求
-
- 大小写敏感
- 使用缩进代表层级关系(严格注意缩进,多一个空格都不行)
- 相同的部分只出现一次,不会有冗余
- 注意空格 :
context-path: /abc
- 配置文件位置:
- 项目根目录下
- 项目根目录中config目录下
- 项目的resources目录下
- 项目resources目录中config目录下
- 配置文件加载顺序 : 不同格式不同位置,加载顺序不一样
-
- 如果同一个目录下,properties 和yml 都存在,那么,先读取properties 文件,再读取yml 文件。如果两种格式中都配置了同一个属性的值,以第一个读取到的为准,后面读取的是不会覆盖前面的
- 优先级高的,会被先加载,优先级低的会后加载;相同的属性配置,以先加载的为主,不同的属性配置形成互补 : 根目录中的config->根目录下->recourses的config目录下->recourses下
- 项目目录结构
- java 目录:存放 java 代码的
- resouces/static 目录:存放静态资源的,比如 HTML、css、js 等等
- resources/templates 目录:存放模板页面的,比如 thymeleaf 模板
- application.yml:SpringBoot 项目的配置文件
- 我们还可以在 resources 目录下创建一个 public 目录,也可以将静态资源放在 public 目录下
注意:无论是将静态资源放在 static 还是 public 目录中,
我们在浏览器访问的时候路径都不需要加 static或者 public。
格式:http://ip:port/项目路径/资源名。
我们如果使用 jsp 来做为页面开发的话,
还需要创建一个 webapp 目录及 WEB-INF 目录,
但以后我们是不会使用 jsp 来开发的。