Spring
的诞生是为了简化
Java
程序的开发的,而
Spring Boot
的诞生是为了简化
Spring
程序开发的 。
Spring Boot
翻译一下就是
Spring
脚手架,什么是脚手架呢?如下图所示:
盖房子的这个架子就是脚手架,脚手架的作用是砌筑砖墙,浇筑混凝土、方便墙面抹灰,装饰和粉刷的,简单来说,就是使用脚手架可以更快速的盖房子。
而
Spring Boot
就是
Spring
框架的脚手架,它就是为了快速开发
Spring
框架而诞生的。
例如,以前铺路是这样的:
![](https://img-blog.csdnimg.cn/900cfe03001e4b318abf83e830053ccf.png)
改造之后的效率是这样的:
![](https://img-blog.csdnimg.cn/5f949a587aa84ab382c12946154bc12f.png)
或者是这样的:
![](https://img-blog.csdnimg.cn/4cc7fc4780194b6e9734dc371a793b56.png)
可以看到,每次技术的诞生和改进相比于之前的效率会有一个质的提升,而
Spring Boot
相比于
Spring 也是如此。
一、Spring Boot 优点
快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。 快速部署项目,无需外部容器即可启动并运行项目。 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。 支持更多的监控的指标,可以更好的了解项目的运行情况。
二、Spring Boot 项目创建
社区版创建spring项目
IDEA社区版默认没有继承 Spring Initializer 功能,所以我们要采用以下两种方式来创建spring项目
1.手动去 start.spring.io把工程创建好之后下载下来(方法一)
2.手动去社区版安装一个插件(方法二)
方法一
1.我们打开此网页(https://start.spring.io/)
![](https://img-blog.csdnimg.cn/9a04f1de13054bac91ea8c695b51bff5.png)
2.根据下列图片进行配置
![](https://img-blog.csdnimg.cn/15499ae99bc34033abf29da0eecf1e5d.png)
3.配置好后进行下载
![](https://img-blog.csdnimg.cn/c0e028fe3dd94782b5bd6026a7876b03.png)
![](https://img-blog.csdnimg.cn/035c720dac194ddab76c7b392e689cc6.png)
4. 下载好后,我们进行解压
![](https://img-blog.csdnimg.cn/30230811a68f46bb93d10480614868f9.png)
5.之后我们从IDEA中打开解压好的项目即可
![](https://img-blog.csdnimg.cn/3cd36e7904784cf8997c5d541d4f9609.png)
![](https://img-blog.csdnimg.cn/607567a01b2142d39b23c6b5672c532a.png)
6.由于我们是第一次,所以下载会有点慢,下载好后我们可以看到pom.xml是已经配置好了的
![](https://img-blog.csdnimg.cn/8d371f0faf254991ae16a2519ed360fe.png)
7.我们设置的类里面有main方法,我们直接启动main方法spring就可以运行
![](https://img-blog.csdnimg.cn/b25ccf336bdc4ea2aba5ab59bf2d46df.png)
8.里面是天生带着日志的,包含打印时间、日志级别、线程ID、线程名称、是由哪个类打印的、我们都可以看到
![](https://img-blog.csdnimg.cn/55ff51b4c80949138050b9b95c48b875.png)
方法二
1.进入settings
![](https://img-blog.csdnimg.cn/ab819b2c07444d898807bce7e3417141.png)
2.安装Spring Assistant即可
![](https://img-blog.csdnimg.cn/74b43c9fec9c476887a80eb94148878c.png)
3.现在我们就可以创建一个新的spring项目
![](https://img-blog.csdnimg.cn/1f380be0302a42f7a8fa3128ec631e76.png)
![](https://img-blog.csdnimg.cn/97e1c42d60814fc0a0ea788e9792e5ab.png)
![](https://img-blog.csdnimg.cn/754706e743914735a966552f1726e763.png) ![](https://img-blog.csdnimg.cn/925b167e388e4465889dd81c848a831c.png)
10.这一步需要我们选择所要用到的依赖,大家可以根据需要勾选
![](https://img-blog.csdnimg.cn/1b0a2cfd645143c997704f9365b67214.png)
11.最后我们设置好项目名称和路径即可
![](https://img-blog.csdnimg.cn/9ed5cffc307b4eb7a06c12752e0dcb83.png)
企业版创建spring项目
1.选择创建 Spring Initializr 项目
![](https://img-blog.csdnimg.cn/5588e348a8034c9ab177af20e5f84fb5.png)
![](https://img-blog.csdnimg.cn/56e6db7b6804447db1019911fab2cea1.png)
![](https://img-blog.csdnimg.cn/6bab46c1c8024200918005d43691497c.png)
![](https://img-blog.csdnimg.cn/c9f89d494d6c4514bf524c68937330fc.png)
![](https://img-blog.csdnimg.cn/442a18785e6e48d29b72d9d1e7f145e2.png)
三、项目目录介绍和运行
新建的 Spring Boot 项目目录如下:
Spring Boot
项目有两个主要的目录:
src/main/java 为 Java 源代码。 src/main/resources 为静态资源或配置文件:
/static:静态资源文件夹;
/templates:模版资源文件夹。
3.1 运行项目
![](https://img-blog.csdnimg.cn/fd8449526ce147a782002e36270f8149.png)
点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:
3.2 输出 Hello world
我们学习
JavaEE
就是用来实现
Web
项目或接口的,而之前是
Spring
其实是一个普通
Java
项目,没办法直接和浏览器进行互动,所以接下来我们要用 Spring Boot
来实现和浏览器及用户的交互。
在创建的项目包路径下创建
UserController
文件,实现代码如下:
import org.springframework.stereotype.Controller;
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.";
}
}
重新启动项目,访问
http://localhost:8080/user/sayhi
最终效果如下:
四、注意事项:包路径错误
我们尝试将 controller 移动到其他包下,比如以下几种方式:
![](https://img-blog.csdnimg.cn/ae6f9ed1b79d4f63b833a9aded4f40d3.png)
运行我们的项目,发现程序报错了,如下图所示:
这说明 Spring Boot 项目没有将对象注入到容器中。
5.1 正确路径
当我们把要注入到容器类和启动类放到同级目录下时,如下图所示:
![](https://img-blog.csdnimg.cn/9e17d460be9d47a7a1cd7cbb34dcab5d.png)
这时候
Spring Boot
项目才能正常的将
bean
注入到容器中。
5.2 小结:约定大于配置
以上情况反应了
Spring Boot
项目的另一个特点:
约定大于配置
。
对比
Spring
的项目我们也可以看到这一特点,比如在
Spring
中也是要配置
Bean
的扫描路径的,而 Spring Boot 则不需要,Spring 配置如下:
总结
Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备: 快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。 快速部署项目,无需外部容器即可启动并运行项目。 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。 支持更多的监控的指标,可以更好的了解项目的运行情况等特点。
Spring Boot
可使用
Idea
或网页创建,它的设计思想是约定大于配置,类上标注
@SpringBootApplication
就可以启动
Spring Boot
项目了。
|