快速开发第一个SpringBoot应用
通过笔者这段实践SpringBoot的学习,发现自从使用了SpringBoot后,就再也回不去SpringMVC了,因为相比于SpringMVC,SpringBoot真是太高效率了。下面我们看看它效率到底高在哪里?
在这里我选择在官网上快速搭建一个web应用,并导入到eclipse。
首先访问https://spring.io/projects/spring-boot,选择Quick Start下的Spring Innitializr。进入下面的页面:
按照顺序选择相应的配置:
- ①是指选择构建一个什么项目,这里我选择的是一个maven项目
- ②是指的语言
- ③是SpringBoot的版本,现在最新版本是2.0.2
- ④和⑤是项目名
- ⑥是自动构建的项目里锁依赖的包,这里我们只选择web,添加后如⑦所示
点击Generate Project后,会下载一个jar包到本地,然后把这个jar包导入到eclipse的工作空间,目录结构如下图所示:
可以看到这就是一个很普通的maven项目的目录结构,其实到这里一个简易的web项目就已经搭建已经成功一半了,剩下的就是写一个controller接口来验证是否搭建成功。
我们先往下写,最后再来解释为什么要这么做。同SpringMVC一样,我们在src/main/java目录下新建一个接口controller:
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "hello SpringBoot";
}
}
写法和SpringMVC一样。OK,那我们写好了controller后,就应该访问http://localhost:8080/hello这个url了。问题是怎么启动我们的项目呢?
在我们的项目里有一个DemoApplication类,这个类里有整个项目唯一的一个main方法,SpringBoot官方文档告诉我们应该通过这个main方法去启动项目。这里还有一点非常重要,那就是这个启动类的位置,我在一开始搭建的时候也犯了这个错误:那就是没有将启动类放在父目录或者平级目录里。
什么意思呢?就是在你开发项目的过程中,你所有的Java代码都必须与启动类在同一包或其子包下,这样项目启动的时候,SpringBoot才会去加载到你写的代码。
解决好这个问题后,下面我们通过main启动项目,访问http://localhost:8080/hello这个第一,就可以看到如下页面了:
完成!
可以看到整个过程没有像以前搭建SSM框架一样,捣鼓xml、tomcat、web.xml配置之类的,这是因为所有你需要的,在自动搭建项目的这个过程,SpringBoot都帮你配置好了。这也正体现了当下特别流行的一个概念 : 约定优于配置 。
所谓的约定优于配置就是:开发人员仅需规定应用中不符约定的部分,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。SpringBoot完全体现了这种优点。
学习完SpringBoot的快速搭建后,我们就进入SpringBoot的一些常见的接口请求和数据返回的学习。
快速开发第一个SpringBoot应用的更多相关文章
- .NETCore 快速开发做一个简易商城
介绍 上一篇介绍 <.NETCore 基于 dbfirst 体验快速开发项目>,讲得不太清楚有些多人没看懂.这次吸取教训,将一个简易商城做为案例,现实快速开发. 本案例用于演示或学习,不具 ...
- 如何快速开发出一个高质量的APP——创业谈
[起] 今早,一个技术群里有人想快速做出一个app,然后询问技术方案,大概是这样, 拿到了200w投资,期望花20w两个月先做出一个app,包括iOS,Android, 先,呵呵,一下, 大概预估了一 ...
- 【创业积累】如何快速开发出一个高质量的APP
[起] 今早,一个技术群里有人想快速做出一个app,然后询问技术方案,大概是这样, 拿到了200w投资,期望花20w两个月先做出一个app,包括ios,android, 先,呵呵,一下, 大概预估了一 ...
- 10个Spring Boot快速开发的项目,接私活利器(快速、高效)
本文为大家精选了 码云 上优秀的 Spring Boot 语言开源项目,涵盖了企业级系统框架.文件文档系统.秒杀系统.微服务化系统.后台管理系统等,希望能够给大家带来一点帮助:) 1.项目名称:分布式 ...
- (一)IDEA工具开第一个springboot应用之helloworld
(一)IDEA工具开第一个springboot应用之helloworld 一.前置知识 1.maven相关知识 2.spring注解 3.RESTful API 二.idea开发第一个springbo ...
- 【转载】如果快速开发APP&创业
先贴原文所在个人博客: http://uikoo9.com/ 今天看了一些这个人的文章,还是有一定见解的,比如下面这篇 <如何快速开发出一个高质量的APP——创业谈> http://uik ...
- 使用IDEA 搭建一个 SpringBoot + Hibernate + Gradle 项目
现在创建个项目: 勾上 自已 需要东西.(这里作为演示) maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} 关闭项目 ...
- spring-boot开发:使用内嵌容器进行快速开发及测试
一.简述一下spring-boot微框架 1.spring-boot微框架是什么? 大家都知道,在使用spring框架进行应用开发时需要很多*.xml的初始化配置文件,而springBoot就是用来简 ...
- 基于SpringBoot+Mybatis+AntDesign快速开发平台,Jeecg-Boot 1.1 版本发布
Jeecg-Boot 1.1 版本发布,初成长稳定版本 导读 平台首页UI升级,精美的首页支持多模式 提供4套代码生成器模板(支持单表.一对多) 集成Excel简易工具类,支持单表.一对多导入 ...
随机推荐
- centos下载安装mysql,并设置远程访问
思路 获取安装文件→配置好路径→安装→设置权限→处理常见的问题. 1.下载 先建议去官网看看https://dev.mysql.com/,然后根据自己的常识找到下载路径.同时也找到最新版本. 下载方式 ...
- Focusable 属性和IsTabStop 属性之间的关系
原文:Focusable 属性和IsTabStop 属性之间的关系 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Libby1984/article ...
- bash实现多进程运行
之前一段时间,发现线上日志服务器总是会突然丢失日志,碰到问题时搞的很被动.联系运维同学,又总是被往后推(后来看了一下日志归档脚本,运维同学写的bug).索性自己写了一个脚本,添加到crontab任务中 ...
- 在sqlserver中,使用sql语句更新数据库:生成随机数,更新每一行中的年龄字段
use School --指定数据库 declare @min_id int --声明整数变量@x set @min_id=(select MIN(Id) from Students) --给变量@x ...
- 给WPF示例图形加上方便查看大小的格子之完善版本
原文:给WPF示例图形加上方便查看大小的格子之完善版本 去年10月份, 我曾写过一篇"给WPF示例图形加上方便查看大小的格子"的BLOG(http://blog.csdn.net/ ...
- thread、Task、async & await
学习 Jesse 的文章 async & await 的前世今生(Updated) 而来 Thread是最开始使用的多线程.new一个Thread对象,将方法传进去.手动Start() 还可以 ...
- VS2005 编译 Qt4.8.2库,并修正源码中的错误
从昨天开始利用VS2005对Qt4.8.2库进行编译,在编译到某个文件时,总是报错,提示VS的cl.exe和nmake.exe返回致命错误.错误罗列如下: DefaultLocalizationStr ...
- MFC 窗口分割与通信
一.关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割. 那么我们自己如何创 ...
- 常用user agent
测试user agnet的网站: http://whatsmyuseragent.com/ Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) ...
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
x = 0 QWidget. self.thread = Worker() self.xLable = QLabel( self.spinBox = QSpinBox() self.spinBox.s ...