1 spring-boot介绍
Spring Boot是由spring的Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架
其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?
1)配置web.xml,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件
…
配置完成之后部署tomcat 调试
…
现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!
但是如果使用spring boot呢?
很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务
Spring Boot 具有以下特点:
1 内嵌 Servlet 容器
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。
2 提供 starter 简化 Maven 配置
Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。
3 提供了大量的自动配置
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
4 自带应用监控
Spring Boot 可以对正在运行的项目提供监控。
5 无代码生成和 xml 配置
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置
2 spring-boot 项目创建
搭建一个springboot 项目步骤如下:
1 新建maven项目
2 在pom.xml 中添加下面的依赖:
1 | <parent> |
3 编写html页面:在src/java/resources目录下创建templates目录,在目录下创建login.html,页面代码任意写
4 在包com.hqyj.controller下定义访问login.html的控制器 : 代码如下
1 |
|
5 .添加启动类 :在包com.hqyj下创建MyApplication类,代码如下:
1 |
|
6 启动程序,看到如下图,说明启动成功

7 搭建完毕。在浏览器输入地址http://localhost:8080 /login 访问
SpringBootApplication 注解**
@SpringBootApplication是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。
1 @ComponentScan
@ComponentScan注解就是用来自动扫描被这些注解标识的类,最终生成ioc容器里的bean
2 @SpringBootConfiguration
这个注解的作用与@Configuration作用相同,都是用来声明当前类是一个配置类.可以通过@Bean注解生成IOC容器管理的bean
3 @EnableAutoConfiguration
EnableAutoConfiguration的作用启动自动的配置,@EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置
3 spring-boot 配置静态资源访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
1 :在src/main/resources目录下创建static目录,把js、css、图片等静态资源放在目录下,如下图

2:在页面引入css,js,images方式如下:
1 | <script src="/js/jquery-3.1.1.min.js" type="text/javascript"></script> |
4 spring-boot 热部署
在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊。在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。下面我们就看看对于简单的类修改的热部署怎么实现。
1 导入依赖
1 | <!--springboot 热部署 --> |
2 创建配置文件application.properties. 在src/main/resources目录下创建文件 application.properties. 添加热部署配置,代码如下:
1 | #页面热部署 即页面修改后会立即生效 |
3 如果用idea 开发,还需要更改idea的配置:开启idea的自动编译配置:在 File-Settings-Compiler-Build Project automatically,勾上自动编译,如图

4 ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running,如图

5 新建一个页面,测试 一下:测试注意几个问题
一:在idea中更改了类文件,配置文件,html文件,不要用ctrl+s 保存。因为idea 这里有小bug,页面会报404错误,需要手动重启了
二:刷新浏览器页面测试,建议多刷几次,刷新一次不一定生效。
5 spring-boot application配置文件
5.1application 文件介绍
Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。
SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。
- application.properties
- application.yml
其中,application.yml 是一种使用 YAML 语言编写的文件,它与 application.properties 一样,可以在 Spring Boot 启动时被自动读取,修改 Spring Boot 自动配置的默认值。
.properties 文件我们都熟知了,这里主要介绍下.yml 文件的语法以及使用
YAML 简介
YAML 全称 YAML Ain’t Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。
想要使用 YAML 作为属性配置文件(以 .yml 结尾)
下面是一个简单的 application.yml 属性配置文件。
1 | server: |
YAML 语法
YAML 的语法如下:
- 使用缩进表示层级关系。
- 缩进时不允许使用 Tab 键,只允许使用空格。
- 缩进的空格数不重要,但同级元素必须左侧对齐。
- 大小写敏感。
例如:页面热部署配置可以这样写
1 在src/main/resources目录下创建文件 application.yml,配置如下
1 | spring: |
2 注意:在项目中:application.yml 和 application.properties都存在的话, application.properties 的优先级高于 application.yml。
5.2自定义配置文件
application 配置 允许自定义配置属性,然后用@value注解进行读取,但是在application 文件中读取中文会有乱码问题出现,为了解决这个问题,我们可以用自定义配置文件来完成。
1 在src/main/resources目录下创建文件 application-sms.properties,配置内容如下
1 |
|
2 创建pojo类,读取配置这文件,代码如下:
1 | import lombok.Data; |
3 调用 类的属性的get方法 ,就可以读取文件内容
4 如果出现读取中文乱码问题,就参照下面更改
打开Settings>Editor>File Encodings ,
将Properties Files (*.properties)下的Default encoding for properties files设置为UTF-8,将Transparent native-to-ascii conversion前的勾选上。如图

6 springboot配置启动浏览器访问
1:编写配置文件application.properties:在src/java/resources目录下创建application.properties,加入文件配置信息,如下:
1 | ##是否自动打开浏览器, |
1 在com.hqyj.config包下创建配置类 MyRunner:代码如下:复制即可
1 | /** |
2 启动服务器测试是否成功