spring boot一步一步-Hello word

来源:互联网 发布:cpa做题软件 编辑:程序博客网 时间:2024/05/16 02:02

构建一个restful风格的web service

这篇文章将引导您完成创建一个“hello world”的过程与Spring RESTful web服务。

你将会构建什么东西

你会构建一个接受HTTP GET请求的服务:

将得到一个JSON反馈

您可以自定义的查询字符串一个可选参数 name 的请求:

你将得到的返回值JSON

我们需要以下几样东西来完成它

  1. 15分钟左右的时间
  2. 一个擅长的文本编辑器或IDE
  3. JDK 1.8 以上版本
  4. Maven 3.0+

接下来

创建一个maven项目

目录结构如下

创建返回结果的java类

现在我们已经初步构建了系统,可以创建Web服务了。

来明确一下整个交互过程。

该服务将处理为GET/问候语的请求,可选的查询字符串 name 参数。 GET请求应返回一个状态为200 OK的响应。结果应该是这个样子:

id字段是表示请求的唯一标识符和content表示返回的内容。

为了等到这样的返回结构,我们来构建一个这样的java类

小知识:Spring默认使用 Jackson JSON 库自动封装实体为JSON。

接下来创建controller,用于url访问的路径。

创建资源控制器

在Spring中构建的RESTful Web服务,HTTP请求都是由控制器来处理。只需要用@RestController注解标识,下面的GreetingController接收一个GET方式的请求/greeting 返回一个Greeting 实体

这个controller虽然代码不多但是包含了很多内容,接下来我们一个一个来说

@RequestMapping注解确保HTTP请求/greeting 被映射到的greeting ()方法。

小知识:上面的例子并没有指定GET与PUT,POST,等等,因为@RequestMapping在默认情况下接收的所有HTTP操作。我们可以使用@RequestMapping(method= GET)来精确控制请求的接收方式。

@RequestParam 将请求参数里面的name 绑定到 了greeting() 方法里的参数 name上 并且 使用 defaultValue 来指定如果name没有值默认值就是 World ,@RequestParam 有一个属性 required=false 用来指定这个参数是否必须传 默认为false。

greeting()方法里面返回了一个Greeting对象以AtomicLong产生一个唯一id,以tmplate为模板动态的根据name构造content

这段代码使用Spring4的新@RestController注解,这标志着类作为Restful控制器。实际这个注解只是简单的将@Controller 和 @ResponseBody 两个注解组合在了一起

Greeting对象是如何转换成JSON格式的呢?那是因为spring里面默认的转换器Jackson 2 里面的MappingJackson2HttpMessageConverter

接下来我们来创建应用启动类

以前我们的项目要运行总是要把项目打成war包,总之是各种麻烦。而用spring boot你甚至可以直接执行一个main方法,就能运行一个应用程序。上代码:

其中@SpringBootApplication注解包含了三个注解

  • @Configuration 声明为配置类
  • @EnableAutoConfiguration 自动装配
  • 如果有需要我们还要另行添加@EnableWebMvc来支持jsp等视图解析
  • @ComponentScan 组件扫描

就是这样我们的项目就已经建立完了。你会问web.xml spring.xml 那些文件呢?我的回答是根本不需要。就是这样完了。

开始测试吧

使用浏览器访问 http://localhost:8080/greeting 返回结果应该是

再来加个参数试试  http://localhost:8080/greeting?name=User 返回结果应该是

看到没 name 值跟着变了,id值也变了。我们的初次体验就到这儿吧!

本文原创地址:三国志2

参考:http://spring.io/guides/gs/rest-service/

0 0