【SpringBoot】2.快速搭建一个SpringBoot应用

上一篇博客我们介绍了SpringBoot的概念,这里我们通过快速搭建一个SpringBoot应用来体验SpringBoot的特色。

1.创建工程
首先我们打开MyEclipse,创建一个Maven工程:

然后选择创建模式,这里我们选择不需要骨架:

最后填写项目相关参数:

项目创建之后工程目录如下:

pom.xml文件中有一些错误,我们先去配置它,在POM文件中添加SpringBoot的依赖,配置如下:

[html] view plain copy

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  4. http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>cn.com.springboot.web</groupId>
  7. <artifactId>spring-boot-test</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. <packaging>war</packaging>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.5.4.RELEASE</version>
  14. <relativePath/> <!-- lookup parent from repository -->
  15. </parent>
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  19. <java.version>1.8</java.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-web</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter-test</artifactId>
  29. <scope>test</scope>
  30. </dependency>
  31. <dependency>
  32. <groupId>mysql</groupId>
  33. <artifactId>mysql-connector-java</artifactId>
  34. </dependency>
  35. </dependencies>
  36. <build>
  37. <plugins>
  38. <plugin>
  39. <groupId>org.springframework.boot</groupId>
  40. <artifactId>spring-boot-maven-plugin</artifactId>
  41. </plugin>
  42. </plugins>
  43. </build>
  44. </project>

我们将jre环境换为1.8(因为SpringBoot中很多依赖是需要jdk1.8版本支持的):

然后我们保存pom.xml文件,当编译器加载更新完毕后,我们会在工程中看到maven依赖被成功加载进来:

此时我们打开“Maven Dependencies”依赖的详情,可以看到如下依赖被引入:

我们可以发现web常用的依赖都被引入进来了,就如前面概述中所说的,SpringBoot的核心依赖中包含了许多开发常用的jar包依赖。

我们要解释的jar依赖有两个:
(1)spring-boot-starter-parent
该依赖为Spring Boot的父级依赖,它用来提供相关的Maven默认依赖,引入该依赖之后,常用的包依赖可以省去version标签。
想查看Spring Boot提供了哪些jar包的依赖,可以去本地的maven仓库的以下路径:
xxx\repository\org\springframework\boot\spring-boot-dependencies\1.5.4.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom
的pom文件中查看。若SpringBoot提供的依赖版本有些东西不是开发中需要的,可以选择去声明其他版本依赖覆盖本依赖。

(2)spring-boot-starter-web
此依赖为Spring Boot的”开箱即用“依赖模块之一,“开箱即用”的依赖基本都是以spring-boot-starter-xx作为命名的。关于开箱即用,
它会自动封装所需功能的依赖,不需要做很多的配置和引入各种需要的依赖,也不会出现依赖版本不匹配的问题。

然后我们创建用户请求响应Controller层,用来响应一个RESTful风格的请求:

代码如下:

[java] view plain copy

  1. package cn.springboot.test.controller;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import org.springframework.web.bind.annotation.PathVariable;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. @RestController
  8. //该注解等价于@[email protected]的结合,使用这个注解的类里面的方法都以json格式输出。
  9. public class HelloController {
  10. private static Map<Integer,String> userMap = new HashMap<Integer,String>();
  11. private void initUserMap(){
  12. userMap.put(1, "张三");userMap.put(2, "李四");
  13. userMap.put(3, "王五");userMap.put(4, "赵二");
  14. }
  15. @RequestMapping("/hello/{id}")
  16. public String findById(@PathVariable Integer id) {
  17. initUserMap();
  18. return "你好,用户:" + userMap.get(id);
  19. }
  20. }

SpringBoot启动有三种方式:
1. main方法启动 
2. 使用maven命令 mvn spring-boot:run 在命令行启动该应用 
3. Java -jar 命令启动,需要先运行“mvn package”进行打包

我们这里选项第一种方式。创建SpringBoot的一个核心启动类:

代码如下:

[java] view plain copy

  1. package cn.springboot.test;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. //Sprnig Boot项目的核心注解,主要目的是开启自动配置
  6. public class SpringbootTestSimpleApplication {
  7. //该main方法作为项目启动的入口
  8. public static void main(String[] args) {
  9. SpringApplication.run(SpringbootTestSimpleApplication.class, args);
  10. }
  11. }

我们运行SpringbootTestSimpleApplication,待控制台加载:

加载完毕后,我们在浏览器访问刚刚写的hello服务,访问id为1和2的用户信息。

当路径为"http://localhost:8080/hello/1"时,浏览器结果为:

当路径为"http://localhost:8080/hello/2"时,浏览器结果为:

就这样我们实现了一个简单的SpringBoot服务,看起来十分的简介和快速,这就是SpringBoot的强大之处。

时间: 2024-10-10 16:39:45

【SpringBoot】2.快速搭建一个SpringBoot应用的相关文章

springboot入门(一)--快速搭建一个springboot框架

原文出处 前言在开始之前先简单介绍一下springboot,springboot作为一个微框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架的应用程序,总的来说springboot不是为了要替代Spring IO平台上众多的项目也不是spring的升级,它只是提供一种不同的开发体验,一种几乎没有配置文件的快速开发的框架,让你体验一下java做到接近ruby on rails开发速度的感觉. 正文说了一堆废话直接进入正文,接下来将体验到没

快速构建一个 Springboot

快速构建一个 Springboot 官网:http://projects.spring.io/spring-boot/ Spring Boot可以轻松创建可以"运行"的独立的,生产级的基于Spring的应用程序.我们对Spring平台和第三方图书馆有一个看法,所以你可以从最开始的时候开始吧.大多数Spring Boot应用程序需要很少的Spring配置. 特征 创建独立的Spring应用程序 直接嵌入Tomcat,Jetty或Undertow(不需要部署WAR文件) 提供有意思的&qu

玩转 SpringBoot 2 快速搭建 | RESTful Api 篇

概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP 协议的Web 接口,需要注意的是它和 HTTP 协议并非绑定关系.我的个人理解就是:通过HTTP协议不同请求方法(GET.POST.PUT.Patch,DELETE)来判断如何操作统一命名的资源,并且通过不同的响应码来知道执行的状态. 关于 RESTful API 具体详细介绍,我推荐阅读下面 3

如何快速搭建一个完整的移动直播系统?

移动直播行业的火热会在很长一段时间内持续,通过和各行业的整合,从而成为具有无限可能性的行业.主要因为以下三个原因: 第一,移动直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,能刺激更多人去创造和传播优质内容. 第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,为移动直播提供一个极佳的发展环境.文字.声音.视频.游戏等都会在移动直播中呈现,创造出更加丰富的用户体验.直播可以以SDK的形式接入到自己的应用中,比如,教育领域中的课后辅导完全可以

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序如下: 配置Host groups.在生产环境中,可能会有多个不同的业务,每个业务下又有自己的服务器.因此,通过定义Host group可以进行业务分组. 配置Template.顾名思义模板的意思,假设我们有多台Mysql服务器或应用服务器,他们的机器配置.开放端口都基本相同,那么我们没有必要一台台

快速搭建一个“微视”类短视频 App

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 "爱就像蓝天白云晴空×××,突然暴风雨--"偷偷在上班期间看微视里美丽的×××姐,不巧被老大当场抓包"看来还是给你安排的工作太少了,这样吧,竟然你那么喜欢看微视,那就给你三天时间搭建出类似微视的短视频APP,要搭建不起来,这个月的绩效奖金就取消!"我的天!除了绝望还是绝望!人们常

本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区

原文:本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区 安装 docker# 安装方法:https://hub.docker.com/?overlay=onboarding 文档手册:https://docs.docker.com/docker-hub/ 安装完成后使用命令查看版本 $ docker --version 下载镜像# 1.拉取需要的镜像# 去 hub.docker.com 拉取需要的镜像 2.查看拉取方法# 3.转到终端界面# 拉取

使用TestStand默认ProcessModel--SequentialModel,快速搭建一个自定义过程模型Demo

TestStand 版本:2012 SP1 实现的的目标效果,如下图:使用TestStand默认ProcessModel--SequentialModel,快速搭建一个自定义过程模型Demo 步骤一: .准备工作 将TestStand ProcessModel 设置成--SequentialModel 设置Result Processing,这边启用Report记录  步骤二:  添加Model Callback 右击Sequence区域,选择Sequence File Callbacks,在出

通过ELK快速搭建一个你可能需要的集中化日志平台

在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4net就够了,随着应用的越来越多,日志散 落在各个服务器的logs文件夹下,确实有点不大方便,这个时候就想到了,在log4net中配置 mysql的数据源,不过这里面有一个坑,熟悉log4net的同学知 道写入mysql有一个batch的阈值,比如说batchcache中有100条,才写入mysql,这样的话,就有一个延迟的效果,而且如果batchcache中不满100条的话, 你在mysql中是看