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

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

快速构建

  • 如果我们想基于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两三天,游戏玩家数从几万降到几百
【推荐】 小论数据分析的方法及思维

最新文章

  1. ubuntu下安装gedit插件
  2. BZOJ1933: [Shoi2007]Bookcase 书柜的尺寸
  3. Codeforces Round #209 (Div. 2) B. Permutation
  4. 转载:移动前端开发之viewport的深入理解
  5. springboot系列之-helloword入门
  6. 企业内部从零开始安装docker hadoop 提纲
  7. 服务发现:Zookeeper vs etcd vs Consul
  8. linux远程执行命令
  9. 洛谷P1294 高手去散步
  10. Java多线程的join()
  11. 自定义函数动态执行SQL语句
  12. PHP上传文件详解
  13. AngularJS自定义指令之可选参数replace
  14. javaBean与Servlet学习
  15. .net core在网关中统一配置Swagger
  16. oracle根据某个字段的值进行排序
  17. cf 1132 F
  18. mysql字符串类型数据
  19. Luogu P1484 种树
  20. struts2 标签变形和 样式class无效 问题解决方法

热门文章

  1. canvas转盘抽奖的实现(二)
  2. 使用sed来自动注释/恢复crontab中的一个任务
  3. 左儿子右兄弟Trie UVA 11732 strcmp() Anyone?
  4. ios上视频与音乐合成后出现播放兼容问题的解决方法
  5. 从TFS中的现有项目复制一份作为新项目,导致提交的服务器无法加载
  6. Cocos2d-JS开发中的一些小技巧
  7. 区块链+AI将给区块链带来怎样的改变?
  8. leetcode 747. Largest Number At Least Twice of Others
  9. [bzoj 1449] 球队收益(费用流)
  10. 关于JavaScript的事件触发