springboot快速入门
环境要求
jdk
:1.8+maven
:3.5+
我使用的工具为idea2020
hello, spring boot
-
创建一个空的maven项目,并导入相关依赖,pom文件如下
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>demo1</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
-
创建一个启动类,内容如下
@SpringBootApplication public class Starter { public static void main(String[] args) { // 启动SpringBooty应用 SpringApplication.run(Starter.class, args); } }
-
创建一个Controller,内容如下
// @Controller // @ResponseBody:表示返回的是直接是响应内容,而不是页面 @RestController// 等价于上面两个结合 public class HelloController { @RequestMapping("/") public String hello() { return "hello, springboot"; } }
-
至此,一个简单的spring boot项目就开发完成了,只需要运行启动类,就可以启动该应用了。启动后,访问http://localhost:8080/就可以看到
hello, springboot
了。非常简单
依赖管理
我们以前用spring MVC的时候,需要导入一大堆的依赖,而spring boot之导入一个就够了,这得益于spring boot的依赖管理,其主要特点如下:
-
使用了父项目做依赖管理:也就是上面pom文件里的
spring-boot-starter-parent
,它管理许多常用的依赖、启动器和插件等,且版本都设定好了,我们只需要引入它,就可以轻松的导入所需要的依赖 -
starter场景启动器:spring boot官方为我们提供了许多的场景启动器,他们的格式为
spring-boot-starter-*
,例如上面的spring-boot-starter-web
。这些场景启动器包含了场景常用的依赖,所以我们只需要导入一个启动器,就可以直接导入该场景所有常用的依赖。同时它也支持自定义场景启动器,格式为thirdpartyprojec-spring-boot-starter-*t
-
无需关注版本号,自动版本仲裁:spring boot为我们设置好了所依赖的版本号,开发人员也就不用考虑版本间的兼容问题了
-
可以修改版本号:当我们需要自定义版本号时,如下
<properties> <mysql.version>5.1.43</mysql.version> </properties>
自动配置
- 自动引入并配置了Tomcat,SpringMVC等
- 自动配置好了web的常见功能,如文件上传,字符编码问题等
- 自动配置了扫描路径,默认为主程序所在包及其子包下的所有组件,若想要改变路径,修改主程序注解
@SpringBootApplication(scanBasePackages = "...")
- 所有的配置都有默认值
- 根据不同的场景加载所需的配置,所有的自动配置功能都在
spring-boot-autoconfigure
包里