前言

在没有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项目)的更多相关文章

  1. 深入浅出!springboot从入门到精通,实战开发全套教程!

    前言 之前一直有粉丝想让我出一套springboot实战开发的教程,我这边总结了很久资料和经验,在最近总算把这套教程的大纲和内容初步总结完毕了,这份教程从springboot的入门到精通全部涵盖在内, ...

  2. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)

    前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...

  3. SpringBoot从入门到精通教程(一)

    写在前面的话: 在很早之前,记笔记时候,我就一直在思考一个问题,我记笔记是为了什么,我一直想不明白 ,后面发现技术跟新迭代的速度实在太快了,笔记刚纪完,技术又跟新了,于是我想了想干脆边写博客,边记笔记 ...

  4. SpringBoot从入门到精通教程(五)

    上节,我们讲了 SpringBoot 如何使用MyBatis 今天我们讲讲 Springboot Logo自定义的问题, 我们在启动 SpringBoot 时,控制台会打印 SpringBoot Lo ...

  5. Spring Boot从入门到精通(一)搭建第一个Spring Boot程序

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

  6. springboot从入门到精通(二)

    这一节我们一起用springboot开发一个应用程序,应用程序里的核心概念是玩家获取英雄列表上的英雄信息. 1.定义实体模型: 代码如下: package com.dota.herolist.enti ...

  7. springboot从入门到精通(三)

    再开始第三节之前,先补充一下第二节里出现的小问题,就是springboot的application.properties,我在文件中添加了server.port=9090这个参数,但是启动项目后并未生 ...

  8. springboot从入门到精通(一)

    springboot到底有什么好处?有什么优势?这个先不用看,我们只要知道它有很多优势,现在要做的事只有一件,那就是撸代码!撸完就知道有多少料! 首先,在案例中,我们会构建一个英雄列表应用.操作如下: ...

  9. SpringBoot从入门到精通十一(SpringBoot文件上传的两种方法)

    前言 在企业级项目开发过程中,上传文件是最常用到的功能.SpringBoot集成了SpringMVC,当然上传文件的方式跟SpringMVC没有什么出入. 本章目标 使用SpringBoot项目完成单 ...

随机推荐

  1. 2 DDD理论学习2 领域

    一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同. 所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题.问题的范围边界就基本确定了. 领域首先要拆分成 ...

  2. OpenGL图形渲染管线、VBO、VAO、EBO概念及用例

    图形渲染管线(Pipeline) 图形渲染管线指的是对一些原始数据经过一系列的处理变换并最终把这些数据输出到屏幕上的整个过程. 图形渲染管线的整个处理流程可以被划分为几个阶段,上一个阶段的输出数据作为 ...

  3. Excel 2013永久取消超链接

    原文:Excel 2013永久取消超链接 在使用Excel的过程中,Excel会自动将网址转换为超链接,操作不当,容易误点,引起不必要的错误, 那么本篇博客就总结下如何在Excel 2013里永久取消 ...

  4. Andrdoid适当的执行行为拦截的应用----从底部C截距

    前一个概要文章称这项研究我的一些主要细节.这里就不在说.但还需要指出的是.关于三大感谢上帝愿意分享知识(在我看来,人们懂得分享和慎重考虑之神,奥地利不一定是技术牛~~) 第一篇:http://blog ...

  5. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

  6. WPF加载等待动画

    原文:WPF加载等待动画 原文地址:https://www.codeproject.com/Articles/57984/WPF-Loading-Wait-Adorner 界面遮罩 <UserC ...

  7. JS window下面的对象

    ) •Js脚本一执行就会访问服务器.超链接诶还需要点击. getElementById(), (非常常用),根据元素的Id获得对象,网页中id不能重复.也可以直接通过元素的id来引用元素,但是有有效范 ...

  8. socket函数集-----网络编程必备值得拥有

    accept(接受socket连线) 相关函数 socket,bind,listen,connect 表头文件 #include<sys/types.h> #include<sys/ ...

  9. 【C#】WindowsAPICodePack-Shell使用教程

    原文:[C#]WindowsAPICodePack-Shell使用教程 1.首先在项目中添加WindowsAPICodePack的Nuget包.   点击安装即可. 2.获取<我的电脑>的 ...

  10. 【WPF】右下角弹出自定义通知样式(Notification)——简单教程

    原文:[WPF]右下角弹出自定义通知样式(Notification)--简单教程 1.先看效果 2.实现 1.主界面是MainWindow 上面就只摆放一个Button即可.在Button的点击事件中 ...