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项目完成单 ...
随机推荐
- .net命名空间和程序集详解
命名空间是一种用于将逻辑上相似的类按层次结构分组的机制.这种机制防止了命名冲突.在这种结构化采用被点号"."分隔的单词来实现.通常最顶层的命名空间是System,例如System; ...
- python 两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点. 看到这道题的时候,很多人的第一反应就是采用蛮力的方法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点.如 ...
- 3.RabbitMQ相关概念的杂谈
1.vhost,为什么我要有这个vhost呢? 这是因为可能有很多组使用RabbitMQ,有产品组,用户组,vhost,虚拟主机的意思,可以避免命名冲突. 2.Exchange,交换机 有四种交换机 ...
- python 教程 第十四章、 地址薄作业
第十四章. 地址薄作业 #A Byte of Python #!/usr/bin/env python import cPickle import os #define the contacts fi ...
- angular.js分页代码的实例
对于大多数web应用来说显示项目列表是一种很常见的任务.通常情况下,我们的数据会比较多,无法很好地显示在单个页面中.在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能.现在 ...
- cross-compile-openssl-windows.sh,cross-compile-curl-windows.sh,cross-compile-zlib-windows.sh,build-zlib-visual-studio-2015-cli.bat
https://gist.github.com/artynet build zlib with Visual Studio CLI toolhttps://gist.github.com/artyne ...
- [转]完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
一.文章前言 本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制然后压根都 ...
- ELINK编程器典型场景之远程镜像
当不想直接提供Hex/Bin等二进制程序文件给用户时,通过生成远程镜像功能将程序文件加密后,再提供给用户自行脱机下载来达到远程更新的目的. 远程镜像生成的一般步骤为由客户端提供SN码,本地依据SN码加 ...
- Win8 Metro(C#)数字图像处理--2.68图像最小值滤波器
原文:Win8 Metro(C#)数字图像处理--2.68图像最小值滤波器 /// <summary> /// Min value filter. /// </summary> ...
- EPPlus导出两千万行记录到xlsx的c#代码
private void button5_Click(object sender, EventArgs e) { Stopwatch watch = new Stopwatch(); Backgrou ...