一.SpringBoot简介
1.SpringBoot是什么
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
----百度百科
通俗来说,SpringBoot是一种用来快速搭建和开发Spring应用的框架,是整合Spring技术栈/全家桶的一站式脚手架,本质是框架的框架。SpringBoot框架中有两个非常重要的策略:开箱即用和约定大于配置。
(1)开箱即用:是指在开发过程中,通过在MAVEN项目的pom文件中添加相关场景的依赖启动器,即可直接进行相关场景的代码开发,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。
(2)约定大于配置:由开发者在结构中添加信息的软件设计范式/格式。这一特点虽降低了部分灵活性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。
2.SpringBoot的优缺点
2.1 SpringBoot优点
(1)极大简化了开发流程,提高了开发效率(简单高效)
(2)抛弃了冗杂的XML配置文件,简化配置整合流程
(3)内置服务器,提供更加轻量级的微服务开发
2.2 SpringBoot缺点
(1)版本帝,迭代更新快,需要时刻关注
(2)内部原理复杂,封装太深,不易理解
二.SpringBoot快速开发
需求:浏览器发送/hello请求,响应 hello,Spring Boot2字符串
1.Maven项目创建
(1)创建Maven工程项目boot-01
解释一下IDEA项目创建中groupid、artifactid的含义如下(图源于网络,侵删):
(2)在pom.xml文件中导入父依赖spring-boot-starter-parent
<!--导入父依赖,此时该项目就被改造成了一个Spring Boot项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
</parent>
父依赖不仅包含构建SpringBoot项目所必需的基本配置,还提供了依赖管理和版本仲裁的功能。只有继承父依赖,此时项目才真正成为一个SpringBoot项目。其中,<version>标签表示了所使用SpringBoot的版本号。
(3)在pom.xml文件中导入开发Web应用的场景启动器
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
注意:场景启动器starter是集成了相关模块开发所涉及的所有依赖坐标的集合,使用时不用声明版本号,由父依赖自动仲裁。
(4)声明主程序类MainApplication
/**
* 声明springboot主程序应用,这是项目启动的入口
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
//启动springboot微服务
SpringApplication.run(MainApplication.class,args);
}
}
(5)书写业务代码
package com.atguigu.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 编写controller
**/
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello springboot2!";
}
}
注意:业务类必须与主程序类放在同一目录层级下,该类才能被识别和注册到Spring容器里!项目结构示例如下:
com
+- example
+- myproject
+- MainApplication.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
(6)启动和测试
(7)项目配置文件
可以在resources资源文件夹下新建application.properties配置文件来对各组件属性进行配置
#注释:配置服务器端口(默认为8080)
server.port=8888
(8)项目打包测试
在pom.xml配置文件内添加如下打包插件,可以将springBoot项目直接打包为jar,并可以通过java -jar命令直接运行。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包结果(package):
注意:打包的时候若出现报错 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0。原因可能是maven版本与springboot版本不兼容,可以通过降低springboot版本或添加如下插件解决:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</build>
2.Spring Initailizr快速创建
(1)创建项目
Creat New Project => Spring Initializr => 点击next
注意:这里idea默认使用https://start.spring.io官网提供的在线模板,所以需要保证网络畅通。
当然也可以选择下面的Custom从指定的链接加载模板。
(2)依次填写项目信息
(3)项目详细配置
(4)最后一步(项目名称和路径配置)
(5)项目创建完成
注意:项目创建完成后,可以删掉阴影选中的文件(无用文件),简化目录结构。
查看目录结构,项目开发所需要的依赖启动器、主程序入口、全局配置文件、包结构等基础框架都被快速搭建好了,我们只需专注于业务开发即可。