Spring Boot 学习系列(01)—从0到1,只需两分钟
此文已由作者易国强授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
快速构建
如果我们想基于spring mvc 提供一个简单的API查询服务,传统的方式,首先需要我们引入spring-mvc/spring-context等等各项依赖包,然后配置相关的参数,编写api接口,准备Tomcat并进行配置,编译打包,启动Tomcat运行。在这一系列的过程中,其实编写api接口才是我们最关心的,其他都是为这个api接口能提供服务而准备的。
基于Spring Boot的方式来构建此服务,我们只需要两分钟即可完成,不妨一起来看看,非常简单。
打开IDE(在此我使用的是IDEA),选择新建项目,通过内置的Spring Initializr项能够快速的构建Spring Boot项目,如下图所示:
填写项目模块的GroupId,ArtifactId等信息,选择next,如下图所示:
选择需要加入的组件依赖,应该是搭建的Spring web项目,在这里我们只勾选web即可,其他组件依赖在真正需要的时候,根据实际情况添加即可,如果不在此添加,在工程新建完成后,在pom.xml文件中自行添加相关的依赖也可以的,在这一步骤并没有做什么神奇的事情。如下图所示:
选择完成后,点击next,然后选择工程保存位置,点击Finish后即可看见如下图所述的功能结构,在这里我们主要关心的是两个文件,一个是工程的核心配置文件:application.properties;另一个是项目的主入口文件:BingoApplication.java。
当然,工程中引入的相关依赖我们直接在pom.xml中查看即可,你会发现依赖超级简洁。一个是web应用需要的,一个是单元测试需要引入的,就这样我们环境的准备就完成了,复杂的依赖关系框架已经帮我们搞定。
经过上面的配置后,下一步我们就可以直接编写我们的服务接口了。在这里我直接在入口文件中定义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!";
}
}
因为我们使用的是Spring Boot框架中内置的Tomcat,在这里简单演示下Tomcat参数的配置,比如我们自定义服务的端口号。在核心配置文件application.properties中加入如下内容:
# 服务端口号server.port=10000
服务编写完成后,我们直接通过IDE自带的maven命令和插件来进行打包或Spring Boot插件直接启动服务即可。如下图所示:
在控制台可以查看相关的启动日志,发现启动ok,在浏览器中输入服务接口即可正常访问,如下图所示:
经过上述步骤,我们的服务雏形就构建完毕了,说得可能比较多,但实际动手操作很快,大家不妨试试吧~
不足之处,欢迎指正,谢谢~
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 网易云首席安全架构师谈安全新形势:DDOS两三天,游戏玩家数从几万降到几百
【推荐】 小论数据分析的方法及思维
最新文章
- ubuntu下安装gedit插件
- BZOJ1933: [Shoi2007]Bookcase 书柜的尺寸
- Codeforces Round #209 (Div. 2) B. Permutation
- 转载:移动前端开发之viewport的深入理解
- springboot系列之-helloword入门
- 企业内部从零开始安装docker hadoop 提纲
- 服务发现:Zookeeper vs etcd vs Consul
- linux远程执行命令
- 洛谷P1294 高手去散步
- Java多线程的join()
- 自定义函数动态执行SQL语句
- PHP上传文件详解
- AngularJS自定义指令之可选参数replace
- javaBean与Servlet学习
- .net core在网关中统一配置Swagger
- oracle根据某个字段的值进行排序
- cf 1132 F
- mysql字符串类型数据
- Luogu P1484 种树
- struts2 标签变形和 样式class无效 问题解决方法
热门文章
- canvas转盘抽奖的实现(二)
- 使用sed来自动注释/恢复crontab中的一个任务
- 左儿子右兄弟Trie UVA 11732 strcmp() Anyone?
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- 从TFS中的现有项目复制一份作为新项目,导致提交的服务器无法加载
- Cocos2d-JS开发中的一些小技巧
- 区块链+AI将给区块链带来怎样的改变?
- leetcode 747. Largest Number At Least Twice of Others
- [bzoj 1449] 球队收益(费用流)
- 关于JavaScript的事件触发