一、Spring Boot简介
1.概念
Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。
2.优点
- 有快速集成框架,可以快速添加外部jar包
- 内置web框架,可以直接运行
- 可以快速部署,不依赖任何外部的web容器
- 抛弃繁琐的XML,使用注解和配置方式进行开发
- 支持更多的监控指标,可以更容易且直观的观察项目的运行情况。
二、Spring Boot项目的创建
idea方式(主流)
-
new project
-
选择spring boot项目,选择合适的jdk版本,设置创建项目源(这里使用默认的)
-
项目参数设置
-
选择spring boot版本,添加项目依赖
-
设置项目名称和保存路径
-
确保idea正常加载springboot项目
删除无用文件共四个
控制台打印启动所用时间且debug未终端,说明spring boot项目已经创建好了。
下边是步骤图示:
注:前提是安装了Spring Boot Helper插件
注意:1. 如果项目加载出错,可能是maven国内源没配置好
网页方式
- 与前边类似,这个是到官网下载压缩包:
-
将文件解压,并用idea打开
-
删除无用文件
建议:本地保存一个压缩包,做备用。
Spring Boot目录说明
另外,static目录用来存放html等静态文件
三、输出Hello World
我们学习 JavaEE(java企业级开发) 就是⽤来实现 Web 项⽬或接⼝的,之前 Spring 其实是⼀个普通 Java 项⽬,没办法直接和浏览器进⾏互动,而添加了spring提供的web相关的依赖,我们就可以和浏览器直接互动了。
所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。
数据准备:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//组合注解即Rest+Controller
@RequestMapping("/user")//路由注册:大小写敏感需要全部小写
public class UserController {
@RequestMapping("/sayhi")
public String sayHi(){
return "Hi,Spring Boot.";
}
}
之后重新启动:
访问 http://localhost:8080/user/sayhi :
SpringBoot项目特点:约定大于配置
创建完SpringBoot项目我们可以发现,在 Spring Boot 中是不需要配置 Bean 的扫描路径的。原因就是SpringBoot项目具有约定大于配置的特点。
这里的约定指的是Maven的目录结构、spring boot默认的配置文件、application.yml中默认属性等。
默认约定下,容器类和启动类都在同级目录下,spring boot默认情况下会自动扫描容器类,当实际内容与默认约定不匹配时,我们一般把对象单独注册到容器中。
SpringBoot的默认约定有:
1、Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在targe文件夹下面。
2、spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一。
3、application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等。
4、SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。就约定了你会使用 SpringMVC。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。
5、当我们导入spring-boot-starter-web后,就会自动帮我们导入springMVC的相关依赖和一个内置的tomcat容器,以及spring-boot-starter-logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。
6、SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。
logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。
6、SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。
当实际开中某个东西不满足SpringBoot的默认约定是,需要单独配置和具体指明才行。