SpringBoot是一个快速开发的框架,可以帮助咱们快速整合第三方框架(主要借助于 Maven 依赖关系),彻底采用注解化,简化 XML 配置,内置嵌入 Http 服务器(Tomcat, Jetty),默认嵌入 Tomcat 服务器,最终以 Java 应用程序进行执行。java
SpringBoot 的主要特色为:web
一、简化maven,只须要- -两个依赖就能够实现Spring+ SpringMVC框架spring
二、自动配置Spring,快速构建项目,省去配置文件数据库
三、零配置,注解化,约定大于配置,简化XML操做数组
四、对主流开发框架的无配置集成服务器
SpringBoot环境要求:
一、jdk要求1.8以上
二、使用Maven进行开发app
SpringBoot基础开发流程:框架
一、建立Maven项目maven
第一步新建一个Maven项目 New—>Maven Project函数
Next下一步
建立好的项目结构
二、引入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控制器 ,建立控制器输出内容到页面效果展现
第五步运行项目 两种方法运行项目
一、右键Run As> Spring Boot App
二、在Boot Dashboard仪表板上 以下图
注意:一、默认端口号8080 二、默认访问地址没有项目名
运行结果以下
第六步打成jar包发布项目
一、在 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配置文件
一、Spring Boot框架遵循约定大于配置。
二、SpringBoot配置文件
配置文件的两种文件格式:一、application.properties 二、application.yaml
若是两个在同一级目录,默认读取application.properties
在SpringBoot中默认的主配置文件名
默认配置文件放在resources中
下面是第一种文件格式:application.properties
这样就新建成功了
下面是第二种文件格式application.yaml
YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
YAML 有如下基本规则:
大小写敏感
使用缩进表示层级关系
必定要有层次结构
配置文件的路径及优先级
配置文件在项目中有四个能够放的地址
一、根目录下(二当家)
二、项目根目录中config下(大当家)
三、项目的resources目录下(四当家)
四、项目的resources中的config目录下(三当家)
在四个配置文件存储位置,读取会有优先级是2>1>4>3
结构以下:
下面来测试一下
首先根目录下
而后项目根目录中config下
其次项目的resources目录下
最后项目的resources中的config目录下
测试结果:仍是先执行根目录下的
若是报了这个错就说明端口号没占用了
3、 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就是配置文件名中间的名称
4、自定义属性
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中
一、导入依赖
@ConfigurationProperties和@Value优缺点
1) 能够从配置文件中批量注入属性;
2) 支持获取复杂的数据类型;
3) 对属性名匹配的要求较低,好比 user-name,user_name,userName,USER_NAME 均可以取值;
@Value 注解的优缺点正好相反,它只能一个个配置注入值;不支持数组、集合等复杂的数据类型;不支持数据校验;对属性名匹配有严格的要求。最大的特色是支持 SpEL 表达式,使其拥有更丰富的功能。