目录
1.在IDEA(2021版)中快速创建Spring Boot项目
一、回顾Spring
1.Spring是什么?
Spring是一个2003 年兴起的一个轻量级的Java 开发的开源框架,
目的:Spring是为了解决企业级应用开发的复杂性而创建的,简化开发
2.Spring是如何简化开发的
为了降低Java开发的复杂性,Spring采取了以下四种关键策略:
- 基于POJO的轻量级和最小侵入式编程,每一个类都是一个Bean
- 通过依赖注入(DI)和面向接口(AOP)实现松耦合
- 基于切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码,例如:RedisTemplate,xxxTemplate
二、SpringBoot介绍
1.什么是SpringBoot?
SpringBoot是基于Spring开发的框架,SpringBoot本身并不提供Spring框架的核心特性以及扩展功能;它只是用于快速开发、敏捷的开发新一代基于Spring框架的应用程序。(他并不是用来替代Spring框架的,而是和Spring框架配合解决开发难度的框架)。
Spring Boot 以"约定大于配置的核心思想",默认帮我们进行了很多的配置,减少了很多Spring的相关的配置;同时它还集成了大量的第三方库配置(redis、MongoDB、rabbitMQ等),SpringBoot应用中这些第三方库几乎可以零配置的开箱即用。(它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。)
2.SpringBoot的优点
- 为所有的Spring开发者提供更加简单的、更快的入门方式
- 开箱即用,提供大量第三方库的默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有多余的代码生成和XML配置的要求
三、Spring Boot环境搭建
1.在IDEA(2021版)中快速创建Spring Boot项目
点击File --> new --> project
跳转到当前页面,按照jdk版本选择相应版本,根据要求给项目起名
勾选 web中的SpringWeb选项,点击finish创建工程
一个简单的SpringBoot的项目结构(以上方式只是通过Spring Initializer快速创建,还有其它方式)
2.pom.xml文件分析
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--spring boot 父级依赖 里面包含了许多的jar包依赖
继承spring-boot-starter-parent的依赖管理、版本控制、打包等内容-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.klh</groupId>
<artifactId>springboot_demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_demo</name>
<description>springboot_demo</description>
<!--规定项目的java版本-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--里面可以手动添加项目所需的依赖-->
<dependencies>
<!--web启动依赖,包含springMVC的依赖
用于实现HTTP接口(包含springMVC),使用SpringMVC构建Web应用程序,使用Tomcat作为默认的嵌入式容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--单元测试类的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--打包依赖
默认使用spring-boot-maven-plugin,配合spring-boot-starter-parent将springboot打包成jar包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
四、配置文件
Spring Boot使用一个全局的 核心配置文件,配置文件名在约定的情况下是固定的
配置文件的作用: 修改Spring Boot 自动配置的默认值,Spring Boot在底层都给我们自动配置好
1.properties配置文件
server.port=8080
#后缀为 .properties 的配置文件的格式为key=value格式 扁平的K/v格式
# 中间的层级使用 "." 来分割的 加载是顺序靠后
2.yml配置文件
server:
port: 8082
# yml文件是标准的树状结构 用":"分割 在赋值的时候要加一个 空格
# key:_value _代表空格 加载顺序靠前 (属性和值对大小写敏感)
3.配置文件的加载顺序
配置文件的加载是 互补加载的; .yaml后缀的也是配置文件加载顺序介于yml和properties之间
同一文件夹下按照文件名和后缀一同区分的顺序:
bootstrap.yml > bootstrap.properties > application.yml > application.properties
按照文件所在位置的加载顺序:(由低到高)
- classpath根目录下的(经过编译后的resource文件夹下)
- classpath根目录下的config/文件夹下(经过编译后的resource/config/文件夹下)
- 项目的根目录下(和src同级)
- 项目的根目录下的/config (和src同级的config文件下)
- 直接子目录下的/config
java -jar 项目的jar包名 --spring.config.location=D:\config/
# 指定优先加载的配置文件的路径
更加详细的加载顺序见spring.io官网
通过profile文件的加载顺序
profile的意思就是配置,不同的环境需要不同的配置;springboot提供了多profile的管理功能,我们可以使用profile功能来区分不同环境的配置。
我们根据不同的环境创建不通的配置文件 application-xx.properties(yml); 在默认提供的application.properties配置文件中指载的application-xx.properties(yml)文件,如下所示:
在命令行指定对应的配置文件(这样多个配置文件不会进行互补,指定那个文件只加载那个文件)
# 1.通过spring.profiles来指定加载的配置文件
java -jar helloworld.jar --spring.profiles=klh
# 2.通过spring.config.location来加载配置文件
java -jar helloworld.jar --spring.config.location=D:/config/application.properties
# 3.通过spring.config.name来加载配置文件
java -jar helloworld.jar --spring.config.name=application