本学习记录的代码,大部分参考自gitee码云的如下工程。这个工程有详尽的Spingboot1.x教程,并且2.x也在更新中。鸣谢!
https://gitee.com/didispace/SpringBoot-Learning.git
Hello World
上一章通过克隆,在本地建立了第一个Springboot工程 : MyArtifactForEffectiveJava。今后的所有示例代码都会添加到这个工程中。今天主要学习第一部分:将Hello World输出到页面上。文件组成如下:
- studySpringboot.BootApplication.java
- studySpringboot.n01.helloworld.HelloWorldController.java
BootApplication.java
Springboot服务启动的核心。示例中代码较多,因为添加了一些其他方面的功能。如果只是想启动Springboot的服务,只需要Main方法中的一行代码就够了:
// 告诉Spring,这个类是启动类。@SpringBootApplicationpublic class BootApplication { public static void main(String[] args) { // 启动服务需要在main方法中调用SpringApplication类的run方法 SpringApplication.run(BootApplication.class, args); }}
启动效果
HelloWorldController.java
通过类标签@RestController来告诉Spring自己是一个控制器,用于接收客户端传递的request。类中的方法可以定义自己接收的request url,比如示例中的方法index的url绑定标签是:
@RequestMapping("/hello")
表明当接收到http://localhost:8080/hello请求时,会执行这个方法。 效果如下:
同时,后台会输出test文本。
Springboot就是这么简单,很短的时间内就搭建好了一个可以访问url的工程。比一比当初使用jsp,struts等搭建一个同样的工程所需的时间就知道Springboot的优势在哪里。
swagger调试
Helloworld的示例非常简单,而且默认的http方法时GET方法。真实的项目肯定是很复杂的,涉及到http方法也不仅仅是GET,还会有POST,PUT,DELETE。那么在前台页面还没有写好的情况下,调试api就成为了必须解决的问题。这里引入了第三方swagger插件来解决这个问题。
swagger插件的引入
swagger插件的引入也比较简单,首先要在gradle.build文件中添加依赖
dependencies { // 用于restful api 测试引入的swagger依赖 implementation 'io.springfox:springfox-swagger2:2.8.0' implementation 'io.springfox:springfox-swagger-ui:2.8.0'}
其次要在BootApplication.java中为启动类打上swagger的标签
@SpringBootApplication@EnableSwagger2public class BootApplication {
最后,启动服务,然后访问如下的url
http://localhost:8080/swagger-ui.html
效果如下:
如果在代码中没有指定http方法,swagger会给出所有http方法供选择。点开列表然后点击try it out按钮,就可以测试刚才编写的api是否能够正确接收request,是否返回正确的response了。
如果需要控制输入的参数,或者是swagger页面上每个api的说明,可以给Controller的相应方法打上标签比如:
// 指定方法的简介和说明@ApiOperation(value="Create a new object