SpringBoot是一个快速开发的框架,能够帮助我们快速整合第三方框架(主要借助于 Maven 依赖关系),完全采用注解化,简化 XML 配置,内置嵌入 Http 服务器(Tomcat, Jetty),默认嵌入 Tomcat 服务器,最终以 Java 应用程序进行执行。
SpringBoot 的主要特点为:
1、简化maven,只需要- -两个依赖就可以实现Spring+ SpringMVC框架
2、自动配置Spring,快速构建项目,省去配置文件
3、零配置,注解化,约定大于配置,简化XML操作
4、对主流开发框架的无配置集成
SpringBoot环境要求:
1、jdk要求1.8以上
2、使用Maven进行开发
SpringBoot基础开发流程:
1、创建Maven项目
第一步新建一个Maven项目 New—>Maven Project
Next下一步
创建好的项目结构
2、引入SpringBoot的pom依赖
父模块依赖: spring- boot- starter-parent
启动依赖: spring- boot-starter-web
测试依赖: spring- boot-starter-test
热部署依赖: spring-boot- devtools
<!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath /> </parent> <!-- 项目设置:编码格式UTF-8 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--单元测试依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Spring Boot SpringMVC框架依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot 测试依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用 devtools,需要重新引入 --> <scope>true</scope><!-- 热部署 --> </dependency> </dependencies>
粘贴到如下位置
第三步创建SpringBoot入口函数
在项目的src/main/java目录下的com.ysd.demo.demo包中随意创建一个带main()方法的类(如类名为:App类),在类的上面添加注解 @SpringBootApplication, 并在 main()的方法体中添加SpringApplication.run(类名.class,args)。此时该类为 SpringBoot 的入口函数即主模块,内容如下:
新建一个class Ctrl+N 建一个class Finish完成
入口函数标记注解:@SpringBootApplication
第四步创建Controller控制器 ,创建控制器输出内容到页面效果展示
第五步运行项目 两种方法运行项目
1、右键Run As> Spring Boot App
2、在Boot Dashboard仪表板上 如下图
注意:1、默认端口号8080 2、默认访问地址没有项目名
运行结果如下
第六步打成jar包发布项目
1、在 pom.xml 文件中添加一个 SpringBoot 插件依赖
<build> <plugins> <!-- SpringBoot插件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <!-- SpringBoot项目打包jar名称 --> <finalName>demo</finalName> </build>
注意:在打包之前需要先确定项目的java环境是jdk而非jre
点击项目右键Build Path
打包命令clean package
右键项目--run as --maven build--golas输入 clean package
把jar包放在其中一个盘里(例如我在E盘的test文件夹中)
cmd运行jar包
java -jar jar包名(demo.jar)
Ctrl+c 关闭命令
cmd修改端口号 :java -jar demo.jar --server.port=4399
二. SpringBoot配置文件
1、Spring Boot框架遵循约定大于配置。
2、SpringBoot配置文件
配置文件的两种文件格式:1、application.properties 2、application.yaml
如果两个在同一级目录,默认读取application.properties
在SpringBoot中默认的主配置文件名
默认配置文件放在resources中
下面是第一种文件格式:application.properties
这样就新建成功了
下面是第二种文件格式application.yaml
YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
YAML 有以下基本规则:
大小写敏感
使用缩进表示层级关系

一定要有层次结构
配置文件的路径及优先级
配置文件在项目中有四个可以放的地址
1、根目录下(二当家)
2、项目根目录中config下(大当家)
3、项目的resources目录下(四当家)
4、项目的resources中的config目录下(三当家)
在四个配置文件存储位置,读取会有优先级是2>1>4>3
结构如下:
下面来测试一下
首先根目录下
然后项目根目录中config下
其次项目的resources目录下
最后项目的resources中的config目录下
测试结果:还是先执行根目录下的
如果报了这个错就说明端口号没占用了
三、 SpringBoot多环境配置
在项目的整个研发过程中,同一个项目会面临着不同的使用环境。使用环境不同,需要的配置信息也会不同。例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据库。如果在项目中只有 application.properties(application.yml)一个配置文件的话,该文件中的属性值会经常需要改动,就会使项目整体的体验变得非常差,而且出错率也极高。这时候,我们可以用 profile 在不同的环境下配置不同的配置文件。这样一来,在 SpringBoot 项目中就出现了多环境的配置文件。
根据不同的环境定义不同的配置环境--对应配置文件
SpringBoot环境配置公式:application-{profile} .properties
{profile} :dev或者test或者prod 也可以自定义
开发环境(模式) dev application-dev . properties
测试环境(模式) test application-test. Properties
生产环境(模式) prod application-prod. Properties
使用spring.profiles.active=dev(环境) 切换环境
下面如何创建:
src/main/resources右键新建一个file
结构如下:
spring.profiles.active=(环境)dev #dev就是配置文件名中间的名称
四、自定义属性
SpringBoot 可以在配置文件中修改默认约定的属性值,还可以添加一些自己需要的属性,也就是可以自定义一些属性。这些自定义的属性可以使用@Value 注解将属性值注入到 beans 中,或使用@ConfigurationProperties注解将属性值绑定到结构化的 beans 中 。
自定义的属性可以放到 application.properties(或 application.yml)全局配置文件中,也可以在自定义的其他配置文件中定义
下面自定义一个一个学生信息 使用的也是propertis和yanl文件使用propertis
右键--new file --stu.properties --右键编码格式
如何读取自定义属性值到实体类
两种方式:
使用@Value注解将属性值单独注入指定到beans中 单个
使用@ConfigurationProperties注解将属性值绑定到特定结构化的beans中 批量
第一种 使用@Value注解将属性值单独注入指定到beans中
新建一个class类
1、要注入自定义属性先@Component
@Component :将实体类交给Spring进行管理 进行bean化,才能进行注入自定义属性值
2、绑定自定义配置文件 指定配置文件的地址
3、使用@value("${属性名|键}") ${属性名|键}--spel表达式
使用@ConfigurationProperties注解将属性值绑定到特定结构化的beans中
1、导入依赖
@ConfigurationProperties和@Value优缺点
1) 可以从配置文件中批量注入属性;
2) 支持获取复杂的数据类型;
3) 对属性名匹配的要求较低,比如 user-name,user_name,userName,USER_NAME 都可以取值;
@Value 注解的优缺点正好相反,它只能一个个配置注入值;不支持数组、集合等复杂的数据类型;不支持数据校验;对属性名匹配有严格的要求。最大的特点是支持 SpEL 表达式,使其拥有更丰富的功能。