SpringBoot简介
SpringBoot就是一个JavaWeb的开发框架,和SpringMVC类似,对比其他JavaWeb框架的好处,简化开发,约定大于配置,能迅速的开发web应用,几行代码开发一个Http接口。
随着Spring的不断发展,设计的领域越来越多,项目整合开发需要配合各种哥样的文件,慢慢变得不那么易用简单,违背了最初的理念,甚至人称“配置地狱”。SpringBoot正是在一个这个的背景下被抽象出来的开发框架,目的是为了让大家更容易的使用Spring、更容易的集成各种常用的中间件、开源软件;
SpringBoot基于Spirng开发,SpringBoot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一基于Spirng框架的应用程序,和Spring框架紧密结合用于提升Spring开发者体验的工具。SpringBoot以约定大于配置的核心思想,默认帮我们进行了很多设置,多数SpringBoot应用只需要很少的Spring配置。同时它继承了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz等等),即零配置的开箱即用。
简单来说,就像是maven整合了所有的jar包,SpringBoot整合了所有的框架。
Spring Boot的主要优点:
- 为所有的Spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
编写第一个SpringBoot程序
SpringBoot能够简化配置文件,就好像Spring的升级版,原来很多东西需要手动配置,现在只需要自动配置即可!
编写步骤
1、使用IDEA构建一个SpringBoot程序
2、填写Mavne基本信息
3、勾选启动器,勾选这个相当于帮你自动配置好了Spring和SpringMVC!包括Tomcat;
4、完成之后,等带Maven自动下载所有的依赖即可,第一次有点慢!
最终如下图:
我们来写一个程序测试一下:
1、一定要在Spring主启动类的同级或者子级目录下新建包否则识别不了!
2、新建一个controller包
3、在这个包下新建一个HellController类
package com.star.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "Hello,World!";
}
}
4、启动主启动类,访问测试:http://localhost:8080/hello
自定义banner
我们可以自定义启动Logo,可以看到启动的默认Logo为Spring!
自定义步骤:
1、我们在resource目录下新建一个banner.txt,在这里面写入自己的banner即可
2、在线网站生成:https://www.bootschool.net/ascii
3、启动测试看下效果
SpringBoot是如何启动的?
新建的SpringBoot项目中,都有一个主启动类
package com.star;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication// 只要标注了这个注解就代表使SpringBoot的应用
public class SpringbootApplication {
//main方法开启了一个服务
public static void main(String[] args) {
//Spring的启动类,通过run方法来具体执行
SpringApplication.run(SpringbootApplication.class, args);
}
}
关于SpringBoot原理的详细讲解: https://www.cnblogs.com/lmx-181028/p/12411058.html
依赖如何配置?
我们没有配置tomcat,没有配置servlet,没有配置spring,这个是怎么生效的?
SpringBoot默认有一个pom.xml
父依赖:
<!--父依赖
spring-boot-starter-parent 父启动类
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--点进源码后发现如下的父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<!--点进源码可以看到很多依赖-->
父依赖作用分析:
1、自动帮助我们管理依赖,里面包含了几乎常用的所有依赖,如果你需要的依赖在这里有,就不用再配置了,如果没有再配置
2、插件和资源过滤的自动管理
启动器:
<!--依赖-->
<!--再这里写的依赖都不需要版本号,只要在父依赖中有即可!-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--spring-boot-starter-xx 场景启动器,导入对应场景所需要的类
会自动帮你导入封装了这个场景所需要的依赖
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>