SpringBoot
文章目录
一、简介
1.背景
产生背景:Spring开发变的越来越笨重,大量的XML文件,繁琐的配置,复杂的部署流程,整合第三方技术时难度大等,导致开发效率低下。
SpringBoot是一个用来简化Spring应用的初始化创建和开发的框架,简化配置,实现快速开发 。
其整合了整个Spring的技术栈,可以说是JavaEE开发的一站式解决方案。
2.优点
- 快速创建独立运行的Spring应用并与主流框架集成
- 内置Servlet容器,应用无需打包war包
- 使用starter(启动器)管理依赖并进行版本控制
- 大量的自动配置,简化开发
- 提供了准生产环境的运行时监控,如指标、 健康检查、外部配置等
- 无需配置XML,没有生成冗余代码,开箱即用
二、第一个SpringBoot
1.推荐环境
官网:https://docs.spring.io/spring-boot/docs/2.1.2.RELEASE/reference/htmlsingle/#getting-started
SpringBoot 2.1.2(基于Spring5.0)
- JDK 1.8及以上
- Maven 3.3及以上
修改:
- Tomcat 9.0及以上
具体情况具体配置。
2.操作
步骤:
1. 创建一个maven的java工程
传统Web应用需要创建一个web工程,后期要打成war包,然后放到tomcat中
springboot应用只需要创建一个java工程,后期直接打成jar包,其内置tomcat
2. 导入SpringBoot相关依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.编写Controller
package cn.cz.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 功能
*
* @author czzhao2
* @created 2019年02月15日 09:35:48
* @lastModified
* @history
*/
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "Hello World";
}
}
4.编写主程序类
package cn.cz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 启动程序
*
* @author czzhao2
* @created 2019年02月15日 09:48:33
* @lastModified
* @history
* @Description: 使用@SpringBootApplication标注主程序,表示这是一个SpringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
//启用SpringBoot应用
SpringApplication.run(MainApplication.class,args);//传入主程序类的Class对象
}
}
5.测试
- 右击主程序类,点击run,ok!
- 因为boot内置了tomcat,所以可以直接启动。
注意:boot程序默认只扫描主程序类所在的包及其子包。
当不同级时,需要在主程序多加一个注解,指定扫描包:
@SpringBootApplication
@ComponentScan("cn.cz.controller")
3.部署
- 添加依赖:
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 打包
- 将打包好的jar包随意复制到任意盘
4.完整分析(pom.xml)
- 父项目是spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
- 父项目的父项目是springbootdependencies,用来管理SpringBoot应用中依赖的版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
- 通过启动器starter添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
SpringBoot提供了许多Starter(启动器),分别对应不同中的应用场景,只要在项目中引入这些starter,相应场景的依赖就会被导入 。
5.完整分析(主程序类)
- @SpringBootApplication
标注在类上,表示这个类是一个SpringBoot应用 - @SpringBootConfiguration标注在类上,表示这个SpringBoot的配置类,相当于xml配置文件
- @Configuration标注在类上,表示这个类是Spring的配置类,相当于xml文件
层级关系:
@Component–>@Configuration–>@SpringBootConfiguration - @EnableAutoConfiguration
开启自动配置功能,SpringBoot会自动完成许多配置,简化了以前的繁琐的配置 - @ComponentScan
标注在类上,指定要扫描的包,默认只扫描主程序类所在的包及其子包
三、快速创建SpringBoot
1.简介
使用向导快速创建SpringBoot项目
需要启动哪个就勾选哪个,添加starter
2.基本操作
默认生成的.mvn、.gitignore等可以删除
POM文件和主程序类都已经生成好了,直接写业务逻辑(可以写controller 测试)即可
resources文件夹的目录结构
|resources
|static 存放静态资源,如css js images
|templates 存放模板页,可以使用模板引擎,如freemarker、 velocity、theamleaf等
|application.properties SpringBoot应用的配置文件
PS:需要完整版笔记,请评论留下邮箱,我看到后回发给你PDF完整版记录~~~
点击查看分版笔记目录:
【SpringBoot】最新版2019Spring Boot快速入门(速成SpringBoot)——学习笔记版解析【1】
【SpringBoot】最新版2019Spring Boot配置解析,源码解析(速成SpringBoot)——学习笔记版【2】
【SpringBoot】最新版2019Spring Boot之WEB开发——Thymeleaf模板引擎速成(速成SpringBoot)——学习笔记版解析【3】
【SpringBoot】最新版2019Spring Boot之MVC功能,异常处理,servlet容器(速成SpringBoot)——学习笔记版解析【4】
【SpringBoot】最新版2019Spring Boot之连接数据库——JDBC,MyBATIS,分页,MyBatisPlus(速成SpringBoot)——学习笔记版解析【5】