Spring 的诞⽣是为了简化 Java 程序的开发的,而 Spring Boot 的诞生是为了简化 Spring 程序开发的。
Spring Boot 翻译⼀下就是 Spring 脚手架:
盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷的,简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。
因为我们⽤的 Idea 社区版(其他版本也同样适⽤),所以先要安装 Spring Boot Helper 插件才能创
建 Spring Boot 项⽬,如下图所示:


安装好之后,它的名字就变成了 Spring Initializr and Assistant,如下图所示:

接下来我们来创建 Spring Boot 项⽬:




点击 Finish 就完成 Spring Boot 的项⽬创建了。
注意事项:
第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库。为了加速 Spring Boot 项⽬的下载,在打开项⽬之前,请先确认⾃⼰的 Maven 已经配置为国内源:
搜索路径:
国内 Settings.xml 的配置信息如下:
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central
…
创建完成后,查看 DemoApplication 类:

若不是如上图标,可能是因为没有引入 Maven,需要这样操作:

稍作等待 ~~
变为以上图标后,我们可以新建一个类测试一下:

package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@RequestMapping("/sayhi")public String sayHi() {return "Hi,Spring Boot";}
}
此时点击启动类 DemoApplication 的 main 方法前的运行符号,并 Run 运行:

可以看到控制台打印如下日志:

这时通过 http://localhost:8080/sayhi 访问:

这就成功创建了一个 Spring Boot 项目 ~~
不使用 IDEA 也可以创建 Spring Boot 项目,我们可以使用 Spring 官方提供的网页版来创建 Spring Boot 项目。
网页版创建项目:https://start.spring.io,如下图所示:


点击生成按钮会下载⼀个 Spring Boot 的 zip 包,解压 zip 之后目录如下:

然后再使用 IDEA 打开,Spring Boot 项目就算创建成功了:

新建的 Spring Boot 项目目录如下:

其中红框圈起来的四个并没有什么实际用途,可以删掉 ~~

启动类 DemoApplication:
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
注解 @SpringBootApplication 和 SpringApplication.run(DemoApplication.class, args); 都是启动类必需的!

与启动类放置于同一个目录底下时,完全可以正常运行 ~~
如果我们把 TestController 类移动到上层 com / example 目录中,此时重新启动运行:

这说明 Spring Boot 项⽬没有将对象注⼊到容器中。
只有把要注⼊到容器类和启动类放到同级⽬录下时,Spring Boot 项⽬才能正常地将 bean 注⼊到容器中!!!(否则扫描不到注解)
新创建一个子目录放置,也是可以的 ~~
以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定大于配置!
对比 Spring 项目我们也可以感受到这⼀特点:在 Spring 中是需要配置 Bean 的扫描路径的;而 Spring Boot 则不需要,它是这种“约定”的形式 ~~