SpringBoot 手册学习
SpringBoot入门指南
SpringBoot简化基于Spring的引用开发,简化了Spring许多繁琐的配置,只需要运行(Run)入口文件即可运行应用,也可以通过引入WEB依赖运行内嵌服务器(Tomcat/Jetty)等插件、部署war文件来进行传统的WEB项目的开发
SpringBoot入门Demo
安装SpringBoot基础配置:
- JDK 1.8(7以上建议8)
- Maven3.5+(用于管理项目依赖)
- IEDA(建议使用的开发IDE)
创建SpringBoot工程:访问官方构建项目架构网站来构建项目:填写相关的信息,如Maven+Java+SpringBoot版本号+GroupId+ArtifactId
生成的是一个压缩包,解压后的文件夹即是项目结构,使用IDEA打开项目可看到项目结构如下
可以看到构建的项目结构清晰,优点明显
- Maven文件架构+Maven依赖配置文件pom.xml
- SpringBoot的入口文件Application+SpringBoot的配置文件application.properties
添加Web依赖:在pom.xml中添加SpringBoot的Web依赖
1
2
3
4
5<!--SpringBoot的Web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>导入新增的项目依赖:pom.xml-Maven-ReImport
编写第一个控制器:在src/main/java下新建controller包,新建DemoController.java文件编写第一个控制器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30package controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
public class DemoController {
"/demo",method = RequestMethod.GET) (value =
public Map demo(
@RequestParam("name") String name
){
Map<Object,String> map=new HashMap<>();
map.put("GetName",name);
return map;
}
public static void main(String[] args) throws Exception{
SpringApplication.run(DemoController.class,args);
}
}其中涉及的关键点:
- @RestController和@RequestMapping:@RestController是SpringMvc中的构造型注解,功能相当于@Controller+@@ResponseBody ,提示系统这是一个支持REST风格的Web请求的API控制器并将请求结果以字符串(通常是JSON)形式返回,@RequestMapping也是SpringMvc中的注解,它为Web请求提供了路由信息,如该方法接受什么路径请求、什么请求方法等
- @EnableAutoConfiguration:这个注解提示了SpringBoot为类对象提供哪些Jar依赖,由于spring-boot-starter-web依赖添加了Tomcat和SpringMvc,因此SpringBoot将假定你正在开发一个Web应用并对Spring进行相应配置
- main方法:在其中调用了run方法将类委托给SpringBoot的SpringApplication类管理,SpringApplication类会引导Spring的启动并自动配置TomCat服务器装配我们委托的类应用
启动项目调用控制器方法:在项目的根目录下输入mvn spring-boot:run或者在IDEA中运行[项目ArtifactId+Application]
踩坑Tips:
入口文件必须放在所有controller包的外面,因为程序运行会默认扫描入口文件下级的包,不会扫描入门文件上级的包,因此我重新在src/main/java下创建了App.java类作为入口文件,现在文件结构如下
入口文件如果放在src/main/java下,则会出现扫描警告并启动失败
解决方法为在入口文件加入@ComponentScan()并配置扫描包路径
运行成功后可以看到程序运行在内嵌TomCat的8080端口,打开浏览器输入localhost:8080/demo?name=harvie可以看到请求转发到我们刚写的DemoController.demo方法返回对应的JSON格式字符串
程序会打印出日志初始化DispatcherServlet 来转发请求
创建一个可执行jar:在pom.xml的
中可以看到用于打包程序的spring-boot-maven-plugin插件 1
2
3
4
5
6
7
8<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>在项目根目录运行命令mvn package -DskipTests(跳过Test过程)
BUILD打包成功后可在项目根目录/target中看到项目的jar包,可以使用java -jar命令通过可执行jar包运行该应用程序
最后可看到 : Started App in 3.904 seconds (JVM running for 4.435)即运行成功