SpringBoot从入门到精通一(idea优雅搭建SpringBoot项目)
前言
在没有SpringBoot之前,我们搭建的是SSM(SpingMVC+Spring+Mybatis)项目,搭建SSM项目的时候,我们要经过一系列的繁琐配置,例如:application,web.xml,spring-servlet等等的配置信息。如果我们这些配置出现一点点的错误。那么面临的就是寻找一大堆的Bug,而且还出现一些我们看难以看懂的异常,对于English不好的同志来说,这是内伤。那么SpringBoot到底解决了什么问题呢?简单来说,SpringBoot主要简化了我们的配置操作,将那些我们需要配置的东西封装好了,我们拿来即用,它的好处如下
创建独立的Spring应用程序
嵌入的Tomcat,无需部署WAR文件
简化Maven配置
自动配置Spring
提供生产就绪型功能,如指标,健康检查和外部配置
绝对没有代码生成并且对XML也没有配置要求
本章目标
通过使用idea快速搭建SpringBoot项目,对SpringBoot能够有简单的入门
项目搭建
1.新建一个SpringBoot项目,打开开发工具idea,选择Create New Project

2.选择Spring Initializr,点击Next

3.这里有些关于maven的知识,由于博主暂时没有写关于Maven的博客,希望各位能够谅解,博主在今后的时间会补上。点击next

4.这一部分的界面有许多依赖,当我们后期的开发中需要用到的时候可以选择,现在的话我们就什么都不选,直接点击Next

5.直接点击finish,一个简单的SpringBoot项目就完成了

6.简单的SpringBoot项目结构如下

7.每一个SpringBoot项目都有一个主程序,直接启动,这里我们不需要配置Tomcat,主程序结构如下。

8.我们直接可以运行项目,SpringBoot默认端口是8080端口,后期可以通过配置文件进行修改,在地址栏输入localhost:8080,此时的话什么都没有,别急,我们新建一个控制器,然后添加一些静态数据模拟数据库,在添加控制器之间我们需要添加一些依赖,这个依赖属于web部分,在最开始直接依赖那一部分我们没有选择,所以我们就主动添加依赖。
<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区别
(1):@RestController是@Controller和@ResponseBody的结合,当在一个控制器里标注了@RestController的时候,那么整个控制器的返回值都是json,而无法返回视图,如果需要返回视图可以使用@Controller。
(2):当使用@Controller的时候,我们一般返回视图,如果需要返回json,那么请在需要返回json的方法上方标注@ResponseBody,就可以返回json了。

总结
如果你建的控制器文件是在SpringBoot应用程序同级目录,则不需要配置@ComponentScan基础扫描包,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。
SpringBoot从入门到精通一(idea优雅搭建SpringBoot项目)的更多相关文章
- 深入浅出!springboot从入门到精通,实战开发全套教程!
前言 之前一直有粉丝想让我出一套springboot实战开发的教程,我这边总结了很久资料和经验,在最近总算把这套教程的大纲和内容初步总结完毕了,这份教程从springboot的入门到精通全部涵盖在内, ...
- SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)
前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...
- SpringBoot从入门到精通教程(一)
写在前面的话: 在很早之前,记笔记时候,我就一直在思考一个问题,我记笔记是为了什么,我一直想不明白 ,后面发现技术跟新迭代的速度实在太快了,笔记刚纪完,技术又跟新了,于是我想了想干脆边写博客,边记笔记 ...
- SpringBoot从入门到精通教程(五)
上节,我们讲了 SpringBoot 如何使用MyBatis 今天我们讲讲 Springboot Logo自定义的问题, 我们在启动 SpringBoot 时,控制台会打印 SpringBoot Lo ...
- Spring Boot从入门到精通(一)搭建第一个Spring Boot程序
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- springboot从入门到精通(二)
这一节我们一起用springboot开发一个应用程序,应用程序里的核心概念是玩家获取英雄列表上的英雄信息. 1.定义实体模型: 代码如下: package com.dota.herolist.enti ...
- springboot从入门到精通(三)
再开始第三节之前,先补充一下第二节里出现的小问题,就是springboot的application.properties,我在文件中添加了server.port=9090这个参数,但是启动项目后并未生 ...
- springboot从入门到精通(一)
springboot到底有什么好处?有什么优势?这个先不用看,我们只要知道它有很多优势,现在要做的事只有一件,那就是撸代码!撸完就知道有多少料! 首先,在案例中,我们会构建一个英雄列表应用.操作如下: ...
- SpringBoot从入门到精通十一(SpringBoot文件上传的两种方法)
前言 在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入. 本章目标 使用SpringBoot项目完成单 ...
随机推荐
- WPF的逻辑树与视觉树(3)Visual呈现
原文:WPF的逻辑树与视觉树(3)Visual呈现 这篇就点到为止,挑重点讲 绘图方式有两种 1.继承UIElement,重写OnRender方法 public partial class Windo ...
- CSS(网页样式语言)基础
所谓全栈,个体可以独立地完成系统的设计.开发.测试.部署以及运维.打通一个领域从无到有的全过程. 为什么会有 markdown 文本编辑显示工具呢,因为 html 太重了.markdown 是 htm ...
- framework7使用问题汇总
framework7 是个非常漂亮的Html框架,最近有个微信公众号的项目使用到了这个,后期还可以封装成APP. 淘宝版和中文官网都是V1,V2只能看英文版的http://framework7.io/ ...
- HDU 1618 Oulipo KMP解决问题的方法
鉴于两个字符串,寻找一个字符串的频率,另一个字符串出现. 原版的kmp另一个陷阱.以下凝视了,标不是踩着好,有加班一定几率,也有机会错误,根据不同的字符串可以是详细. 变化看起来像一个,kmp速度是非 ...
- python3实现域名查询和whois查询
关键字:python3 域名查询 域名查询接口 whois查询原文:http://www.cnblogs.com/txw1958/archive/2012/08/31/python3-domain-w ...
- ASP.NET Core Razor 视图导入 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Razor 视图导入 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 视图导入 上一章节我们介绍了视图起始页,学习 ...
- 帕斯瓦尔定理(Parseval's theorem)
∫∞−∞|x(t)|2dt=12π∫∞−∞|X(ω)|2dω=∫∞−∞|X(2πf)|2df∑n=−∞∞|x[n]|2=12π∫π−π|X(eiϕ)|2dϕ∑n=0N−1|x[n]|2=1N∑k=0N ...
- 用curl访问HTTPS站点并登录(对HTTP返回的结果特别清楚)
开发网站,少不了测试.现在的网站为了加强安全性,都启用了HTTPS协议.所谓HTTPS,也就是HTTP文本在SSL协议中传输.用curl命令行来测试HTTPS站点是个很有用的功能,写点脚本,就可以做功 ...
- x:Static
用途:访问代码中的变量等 后台定义一个变量 public partial class GetStaticFromBackgroundCode : Window { public static stri ...
- WM_SIZE后于WM_CREATE消息!!在窗口被创建时的顺序!
WM_SIZE procedure WMSize (var Message: TWMSize); message WM_SIZE; 参数说明 wParam: Specifies the type ...