从SpringBoot到SpringCloudAlibaba简明教程(一):初识SpringBoot及其基础项目构建
前言
Spring框架的大名想必大家早已如雷贯耳,我们来看一下springboot诞生的初衷,以及它在springframe的基础上解决了哪些痛点。
很久以前,J2EE还是java企业级应用的标准规范之时,spring以其轻量级开发的理念顺势杀出,一路势如破竹,逐渐取代J2EE成为王者。但随着人们对spring深入使用,其中的弊端也逐渐显现出来,其中最典型的便是——配置地狱。
springboot诞生于spring后续的迭代版本,为了解决spring原框架中的一系列痛点,首次提出了“约定大于配置”的理念,以大量的默认配置、注解机制以及内嵌web服务等方式,巧妙且极大的简化了spring配置负担,并且通过统一的starters标准,配合maven实现了三方模块的极简化集成。
SpringBoot是一次真正意义上的现代化java编程思想,在其后端微服务领域的核心体现。
本节我们先来初窥一二,看看如何快速完成基于springboot的基础项目搭建。
首先ide选择IntelliJ IDEA,最好用的java开发环境没有之二,谁用谁知道哈 ^_^
大家可以到官网下载免费社区版,除了不能定制,基本功能完全够用
https://www.jetbrains.com/zh-cn/idea/download/#section=windows

1. 新建工程
我们选择新建工程(file – new project),选择Spring Initializr,如图:

这里首先是选择springboot初始化工具,图中的https://start.spring.io是官方提供的,此外官方也允许第三方服务的个性化定制,比如我常用的是阿里云提供的服务。
点击next.
2. 工程命名并选择依赖库
我们给工程命名为hellospringboot,Java版本我用了默认的java8,其他各项直接默认即可,如图点击next

接下来是依赖库的选择

这里足可以体现出springboot的强大之处,各种依赖库应有尽有,web开发、前端模板、关系型数据库、非关系型数据库、以及后续我们会涉及的微服务等相关组件都放在那里,你只需要根据项目需要勾选即可将其功能完整的整合进来。
我们先只选择一项web开发,别担心,后续有其他需求我们可以随时编写maven完成功能整合,点击next继续。
3. 完成工程构建
选择工程路径,点击finish即可完成springboot基础工程的构建。
构建完毕后的工程如图所示

其中HellospringbootApplication.java是入口文件,pom.xml是maven的工程配置文件,详细描述了整个工程的依赖关系,我们可以双击打开看其中的内容

dependencies是工程依赖的三方库清单,其中的spring-boot-starter-web对应我们先前勾选的web开发依赖项
4. 修改配置文件

我们双击打开resources下的application.properties文件,可以看到当前的工程配置信息:
# 应用名称
spring.application.name=hellospringboot
# 应用服务 WEB 访问端口
server.port=8080
可以看到springboot工程的配置形式非常简洁明了。
这里目前只有应用名称和访问端口两项配置,端口默认为8080,我们可以按需改为80或者其他端口配置。
后续随着我们逐步引入其他三方库,会继续在这个文件下逐步添加其他相关配置。
其实到这里,整个工程就可以执行了。
我们执行工程,然后浏览器访问 localhost:8080 看效果

这是因为我们尚未完成springboot相关的路由映射
5. 新增controller,并实现简单的业务逻辑
我们新建controller包,并创建MainController,如下图所示

编写相关代码:
package com.example.hellospringboot.controller; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/")
public class MainController { @GetMapping("/")
public String index(){
return "hello Spring Boot !!!";
}
}
这里我们用到了一些常用的注解,后续我会给大家逐个阐述其相关含义及作用。
我们重新打开浏览器访问localhost:8080,便会看到如下字样:

到此我们便完成了一个基础springboot项目构建的全过程,同时也对springboot有了一个大致概念上的认知。
本节就到这里,下一节给大家讲述如何 使用springboot快速实现简单的web开发,敬请期待 ^_^
从SpringBoot到SpringCloudAlibaba简明教程(一):初识SpringBoot及其基础项目构建的更多相关文章
- ArcGIS Pro 简明教程(4)工具和模型构建器
ArcGIS Pro 简明教程(4)工具和模型构建器 by 李远祥 工具箱中的工具 ArcGIS Pro 在1.3版本基本上已经继承了ArcMap的所有工具,而且会不断加入一些它自身才有的工具,例如适 ...
- Android Studio 入门级教程(三):gradle项目构建
声明 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4456420.html [系列] Andr ...
- 简明教程 | Docker篇 · 其一:基础入门
了解Docker Docker是什么 Docker是指容器化技术,用于支持创建和使用 Linux 容器,同时Docker也是软件容器平台. 什么是容器(container) 容器是主机上与其他进程隔离 ...
- 2流高手速成记(之六):从SpringBoot到SpringCloudAlibaba
咱们接上回 2流高手速成记(之五):Springboot整合Shiro实现安全管理 - 14号程序员 - 博客园 (cnblogs.com) 身边常有朋友说:小项目用PHP.大项目用Java(这里绝无 ...
- Vbs 脚本编程简明教程之一
—为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...
- SpringBoot:初识SpringBoot
西部开源-秦疆老师:基于SpringBoot 2.1.6 的博客教程 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! 1.SpringBo ...
- 初识springboot(傻瓜式教程)
初识springboot(傻瓜式教程) 项目所需的版本 IDEA 2018 maven 3.x jdk-1.8 IDEA创建spring-boot项目(maven方法) 1.创建一个maven工程 点 ...
- 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)
小伙伴们有点迫不及待了么,来看一看Hello World吧: 新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去: #include <windows.h> #i ...
- 2013 duilib入门简明教程 -- 部分bug (11)
一.WindowImplBase的bug 在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题, 1.最大化按钮的样式 ...
随机推荐
- 【SCOI2007】组队(单调性)
题目链接 大意 给定\(N\)个人与三个常量\(A,B,C\),每个人有两个属性:\(Hi\),\(Vi\). 现要让你选些人出来,定义\(Hmin\)为选出来的这些人中最小的\(Hi\)值,\(Vm ...
- DelayQueue延迟队列-实现缓存
延迟阻塞队列DelayQueue DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素, 同时元素必须实现 Delayed 接口:在创建元素 ...
- 矩阵LU分解
有如下方程组 ,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下: 使用消元矩阵将 A 变成上三角矩阵 , , 使用消元矩阵作用于向量 b,得到向量 c,, , Ax=b ...
- OpenHarmony移植案例与原理:startup子系统之syspara_lite系统属性部件
摘要:本文介绍下移植开发板时如何适配系统属性部件syspara_lite,并介绍下相关的运行机制原理. 本文分享自华为云社区<openharmony移植案例与原理 - startup子系统之sy ...
- python3批量统计用户电脑配置
最近领导想统计一下用户电脑配置信息.好几百人难道让我一个一个的去弄吗? 想想还是写个程序接收一下吧. 客户端 # -*- coding: utf-8 -*- #author:Guoyabin impo ...
- 实践GoF的23种设计模式:SOLID原则(上)
摘要:本文以我们日常开发中经常碰到的一些技术/问题/场景作为切入点,示范如何运用设计模式来完成相关的实现. 本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者: ...
- python运算符优先级及部分运算
在python里面,有很多运算符,比如:算术运算符.赋值运算符.比较运算符.逻辑运算符.成员运算符.身份运算符和位运算符等.这里主要来看看这些运算符的优先级:从上到下优先级依次递减. 优先顺序 运算符 ...
- Apache Ranger 编译安装部署
1. 概述 Apache Ranger是大数据领域的一个集中式安全管理框架,目的是通过制定策略(policies)实现对Hadoop组件的集中式安全管理.用户可以通过Ranger实现对集群中数据的安全 ...
- 5.注入内部Bean
我们将定义在 <bean> 元素的 <property> 或 <constructor-arg> 元素内部的 Bean,称为"内部 Bean". ...
- C#-使用Newtonsoft.Json实现json字符串与object对象互转
json字符串转object对象: IF004Response processResponse = JsonConvert.DeserializeObject<IF004Response> ...