此文已由作者易国强授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。

快速构建

  • 如果我们想基于spring mvc 提供一个简单的API查询服务,传统的方式,首先需要我们引入spring-mvc/spring-context等等各项依赖包,然后配置相关的参数,编写api接口,准备Tomcat并进行配置,编译打包,启动Tomcat运行。在这一系列的过程中,其实编写api接口才是我们最关心的,其他都是为这个api接口能提供服务而准备的。

  • 基于Spring Boot的方式来构建此服务,我们只需要两分钟即可完成,不妨一起来看看,非常简单。


  1. 打开IDE(在此我使用的是IDEA),选择新建项目,通过内置的Spring Initializr项能够快速的构建Spring Boot项目,如下图所示:

  1. 填写项目模块的GroupId,ArtifactId等信息,选择next,如下图所示:

  1. 选择需要加入的组件依赖,应该是搭建的Spring web项目,在这里我们只勾选web即可,其他组件依赖在真正需要的时候,根据实际情况添加即可,如果不在此添加,在工程新建完成后,在pom.xml文件中自行添加相关的依赖也可以的,在这一步骤并没有做什么神奇的事情。如下图所示:

  1. 选择完成后,点击next,然后选择工程保存位置,点击Finish后即可看见如下图所述的功能结构,在这里我们主要关心的是两个文件,一个是工程的核心配置文件:application.properties;另一个是项目的主入口文件:BingoApplication.java。

  1. 当然,工程中引入的相关依赖我们直接在pom.xml中查看即可,你会发现依赖超级简洁。一个是web应用需要的,一个是单元测试需要引入的,就这样我们环境的准备就完成了,复杂的依赖关系框架已经帮我们搞定。

  2. 经过上面的配置后,下一步我们就可以直接编写我们的服务接口了。在这里我直接在入口文件中定义Controller。正常情况我们可以自定义Controller即可。如下所示:

package com.example.future;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/**
 * @author future
 */@RestController@SpringBootApplicationpublic class BingoApplication {    public static void main(String[] args) {
        SpringApplication.run(BingoApplication.class, args);
    }    @GetMapping("/")    public String hello(){        return "hello,world!";
    }
}
  1. 因为我们使用的是Spring Boot框架中内置的Tomcat,在这里简单演示下Tomcat参数的配置,比如我们自定义服务的端口号。在核心配置文件application.properties中加入如下内容:

# 服务端口号server.port=10000
  1. 服务编写完成后,我们直接通过IDE自带的maven命令和插件来进行打包或Spring Boot插件直接启动服务即可。如下图所示:

  1. 在控制台可以查看相关的启动日志,发现启动ok,在浏览器中输入服务接口即可正常访问,如下图所示:

  1. 经过上述步骤,我们的服务雏形就构建完毕了,说得可能比较多,但实际动手操作很快,大家不妨试试吧~

  • 不足之处,欢迎指正,谢谢~

免费体验云安全(易盾)内容安全、验证码等服务

更多网易技术、产品、运营经验分享请点击

相关文章:
【推荐】 网易云首席安全架构师谈安全新形势:DDOS两三天,游戏玩家数从几万降到几百
【推荐】 小论数据分析的方法及思维

Spring Boot 学习系列(01)—从0到1,只需两分钟的更多相关文章

  1. Spring Boot 学习系列(04)—分而治之,多module打包

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 明确功能,各司其职 在一个结构清晰的项目中,一个没有module划分的结构显然不是最佳实践.有人会说可以在同 ...

  2. Spring Boot 学习系列(10)—SpringBoot+JSP的使

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 解决问题 随着spring boot 框架的逐步使用,我们期望对于一些已有的系统进行改造,做成通用的脚手架, ...

  3. Spring Boot 学习系列(03)—jar or war,做出你的选择

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 两种打包方式 采用Spring Boot框架来构建项目,我们对项目的打包有两种方式可供选择,一种仍保持原有的 ...

  4. Spring Boot 学习系列(序)—Spring Boot

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot? Spring Boot 是由pivotal团队提供的一个基于Spring的全新框架 ...

  5. Spring Boot 学习系列(06)—采用log4j2记录日志

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 为什么选择log4j2 log4j2相比于log4j1.x和logback来说,具有更快的执行速度.同时也支 ...

  6. Spring Boot 学习系列(08)—自定义servlet、filter及listener

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的filter及listener配置 在传统的Java web项目中,servlet.filter和li ...

  7. Spring Boot 学习系列(05)—自定义视图解析规则

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 自定义视图解析 在默认情况下Spring Boot 的MVC框架使用的视图解析ViewResolver类是C ...

  8. Spring Boot 学习系列(09)—自定义Bean的顺序加载

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Bean 的顺序加载 有些场景中,我们希望编写的Bean能够按照指定的顺序进行加载.比如,有UserServ ...

  9. Spring Boot 学习系列(07)—properties文件读取

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的properties读取方式 一般的,我们都可以自定义一个xxx.properties文件,然后在工程 ...

随机推荐

  1. .Net Core表单验证

    验证 attributes: Attributes Input Type [EmailAddress] type=”email” [Url] type=”url” [HiddenInput] type ...

  2. vmware workstation14永久激活密钥

    vmware workstation14永久激活密钥分享: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFXEK-488JP-A7MQX-XL8YF AC5XK-0ZD4 ...

  3. MySQL Infobright 数据仓库快速安装笔记[转]

    [文章作者:张宴 本文版本:v1.1 最后修改:2010.05.18 转载请注明原文链接:http://blog.zyan.cc/infobright/] Infobright是一个与MySQL集成的 ...

  4. Java中的枚举类为何不能有public构造器

    声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/27262809. 从Java 5開始有了枚举类, ...

  5. 2016/08/11 Thinkphp之getField用法总结

    getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值.但是事实上并没有那么简单,该方法的用法总结如下: 获取某个字段值 这个是ge ...

  6. Python yield 生成器

    yield:生成器 任何使用yield的函数都称之为生成器,如: def count(n): : yield n   #生成值:n 另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成 ...

  7. [自动化平台系列] - 初次使用 Macaca-前端自动化测试(2)

    接一下来讲一讲api的使用   http://macacajs.github.io/macaca-wd/api/ var _config = { //本程序的host host: 'http://te ...

  8. ABAP 日期栏函数

    在SZC这个中有很多日期函数可以研究借鉴   ABAP - 日期格式转换 现在提供以下一些日期格式转换的函数: Below are several FMs which can be used to c ...

  9. iOS 工程中 Other Linker Flags

    对于64位机子和iPhone OS应用 解决方法是使用-all_load 或者 -force_load. -all_load强迫链接器从它能看见的所有文档中加载所有的对象文件,甚至那些没有OC代码的文 ...

  10. TCP/IP-ICMP-Ping-Traceroute

    TCP/IP-ICMP 作者:Danbo 2015-8-22 I C M P经常被认为是I P层的一个组成部分.它传递差错报文以及其他需要注意的信息.I C M P报文通常被I P层或更高层协议( T ...