在没有SpringBoot以前,咱们搭建的是SSM(SpingMVC+Spring+Mybatis)项目,在搭建SSM项目的时候,咱们要通过一系列的繁琐配置,例如:application,web.xml,spring-servlet等等的配置信息。若是咱们这些配置出现一点点的错误。那么面临的就是寻找一大堆的Bug,并且还出现一些咱们看难以看懂的异常,对于English很差的同志来讲,这是内伤。那么SpringBoot到底解决了什么问题呢?简单来讲,SpringBoot主要简化了咱们的配置操做,将那些咱们须要配置的东西封装好了,咱们拿来即用,它的好处以下java
经过使用idea快速搭建SpringBoot项目,对SpringBoot可以有简单的入门web
1),新建一个SpringBoot项目,打开开发工具idea,选择Create New Projectspring
2),选择Spring Initializr,点击Next数据库
3),这里有些关于maven的知识,因为博主暂时没有写关于Maven的博客,但愿各位可以谅解,博主在从此的时间会补上。点击nextjson
4),这一部分的界面有许多依赖,当咱们后期的开发中须要用到的时候能够选择,如今的话咱们就什么都不选,直接点击Nexttomcat
5),直接点击finish,一个简单的SpringBoot项目就完成了app
6),简单的SpringBoot项目结构以下框架
7),每个SpringBoot项目都有一个主程序,直接启动,这里咱们暂时不须要配置Tomcat,后期的话咱们可能会引入tomcat,主程序结构以下maven
8),咱们直接能够运行项目,SpringBoot默认端口是8080端口,后期能够经过配置文件进行修改,在地址栏输入localhost:8080,此时的话什么都没有,别急,咱们新建一个控制器,而后添加一些静态数据模拟数据库,在添加控制器之间咱们须要添加一些依赖,这个依赖属于web部分,在最开始直接依赖那一部分咱们没有选择,因此咱们就主动添加依赖。ide
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
9),目录结构和控制器代码以下
package com.ssm.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController public class IndexController { @RequestMapping("/index") public Map index(){ Map map=new HashMap(); map.put("name","一只流浪的KK"); map.put("type","公猿"); map.put("sex","male"); return map; } }
10),如今咱们一切准备就绪,点击运行,而后在地址栏输入localhost:8080/index,此时界面表示没有找到,别急,还有特别重要的一步没有写完,我发现许多博主都没有写到,在这里我就将他们的坑填上。
11),各位是否还记得咱们以前所说的每个SpringBoot项目都有一个主程序入口,如今咱们就去主程序入口配置一下。咱们新增一个注解,后期的博客我将会详细讲解每个注解的做用。在这里就不一一介绍了。
12),此时,咱们在从新启动项目,而后在地址栏输入localhost:8080/index,若是出现以下结果,那么恭喜各位已经成功完成了第一个SpringBoot项目。此时咱们看到已经能够显示数据了。
13),在这里我补充一下,@RestController和@Controller区别,区别一:@RestController是@Controller和@ResponseBody的结合,当在一个控制器里标注了@RestController的时候,那么整个控制器的返回值都是json,而没法返回视图,若是须要返回视图能够使用@Controller,区别二:当使用@Controller的时候,咱们通常返回视图,若是须要返回json,那么请在须要返回json的方法上方标注@ResponseBody,就能够返回json了。
1),若是你建的控制器文件是在SpringBoot应用程序同级目录,则不须要配置@ComponentScan基础扫描包,若是不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。