关于Spring之前说到,Spring只是思想(核心是IOC、DI和AOP),而具体的如何实现呢?那就是由Spring Boot 来实现,Spring Boot究竟是个啥呢?
什么是Spring Boot,为什么要学Spring Boot
Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发
的。
Spring Boot 翻译⼀下就是 Spring 脚⼿架,什么是脚⼿架呢?如下图所示
盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷 的,简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。
⽽ Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。
Spring Boot 相⽐于 Spring 有一个质的提升。
Spring Boot的优点
说是说,Spring Boot 有质的提升,具体体现在如下几个方面:
- 快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
- 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
- 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
- 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
我们一个一个来介绍:
创建Spring Boot
首先,我需要下载一个插件 : Spring Boot Helper ;这个插件只有社区版需要下载,专业版的不需要去下载,由于我的是专业版的,所以在插件中找不到,所以我随便在网上照了一张图:
ok,这个下载好了以后,就变成了这个:
ok,点击 Next 继续走,来到这个界面
简单的选择一遍:
继续点击Next 往下走:
来到这个页面:
这个就是之前在Maven 中央仓库中引入的依赖,这里我们可以一次性选择完全部,并且,不需要我们手动去选版本,Spring 帮我们自动匹配了与 jdk 匹配的版本。
再次点击 Next 来到最后一步:
这是我们最熟悉的一步了,取个名字,选择一个存放路径,点击 Finish 就创建完毕了。
创建完毕就来到这个页面:
为了看着简介,我还是删了。
到这里创建就结束了。
为啥这里要演示一遍创建?因为学到后面就会发现创建才是Spring Boot 中最难的东西,总会出现一些莫名其妙的错误。
之前的文章中我也介绍过 Maven 国内源的配置,需要的可以去看看,这里就不再重复了。
Spring Boot 的使用
项目目录介绍和运行
Spring Boot 项⽬有两个主要的⽬录:
- src/main/java 为 Java 源代码。
- src/main/resources 为静态资源或配置⽂件:
- /static:静态资源⽂件夹;
- /templates:模版资源⽂件夹
我们学习 JavaEE 就是⽤来实现 Web 项⽬或接⼝的,⽽之前是 Spring 其实是⼀个普通 Java 项⽬,没 办法直接和浏览器进⾏互动,所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。
在创建的项⽬包路径下创建 UserController ⽂件,实现代码如下:
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/sayhi")
public String sayHi(){
return "Hi,Spring Boot.";
}
}
结果如下:
这里来解释一下:为啥在《Spring中Bean的生命周期和作用域》这一篇文章中需要配置文件,将Bean 对象等配置进 Spring 中,而这里却不需要在配置呢?
如图:
看上述那个注解, @SpringBootApplication ,事实上,我们在创建的时候就已经配置好了,不需要我们在手动配置;
有了这个注解,他就会扫描demo 这个包已经其子包 Spring Boot 项⽬没有将对象注⼊到容器中。
现在我们将 这个 Controller 类移动到与 demo 包平级,试试看能否打印这个 Hi,Spring Boot.
我们可以看到,这样是无法访问的。
小结:约定大于配置
以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定⼤于配置。
对⽐ Spring 的项⽬我们也可以看到这⼀特点,⽐如在 Spring 中也是要配置 Bean 的扫描路径的,⽽ Spring Boot 则不需要,Spring 配置如下:
总结
Spring Boot 是为了快速开发 Spring ⽽诞⽣的,Spring Boot 具备:
- 快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
- 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
- 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
- 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点。
Spring Boot 可使⽤ Idea 或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注
@SpringBootApplication 就可以启动 Spring Boot 项⽬了。