JavaEE03-SpringBoot实现REST版HelloWorld

原创 2018年04月15日 17:16:46

目标

  • 接收HTTP提交
  • 返回json格式的结果

方案

用Maven管理SpringBoot项目. 例如:用NetBeans创建一个Maven类别的Java应用程序.
提示: Maven下载相关依赖的速度相当的慢. 可以通过建立本地的Maven库加速, 但是实现此技术比较复杂.

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.com.subook</groupId>
    <artifactId>mavenproject1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

模型

Book.java

package model;

public class Book {
    private String isbn;
    private String name;

    public Book() {
    }

    public Book(String isbn, String name) {
        this.isbn = isbn;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }
}

Customer.java

package model;
public class Customer {
    private String name;
    private int age;
    private Book[] books;

    public Customer() {
    }

    public Customer(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Book[] getBooks() {
        return books;
    }

    public void setBooks(Book[] books) {
        this.books = books;
    }
}

控制器

RestServiceApplication1.java

package cn.com.subook.mavenproject1;

import model.Book;
import model.Customer;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class RestServiceApplication1 {

    public static void main(String[] args) {
        new SpringApplicationBuilder(RestServiceApplication1.class).web(WebApplicationType.SERVLET).run(args);
    }

    @RequestMapping(value = "/hello")
    public ResponseEntity<String> hello(String name, int age) {
        System.out.println(name + age * 2);
        String message = "<h1>Hello,World!</h1>" + name + " age is " + age;
        return new ResponseEntity<>(message, HttpStatus.OK);
    }

    @RequestMapping(value = "/hello1")
    public ResponseEntity<Customer> hello1(String name, int age) {
        Customer customer = new Customer(name + " hello1", age);
        Book[] books = new Book[2];
        for (int i = 0; i < books.length; i++) {
            books[i] = new Book("isbn000000" + i, "bookname" + i);
        }
        customer.setBooks(books);
        return new ResponseEntity<>(customer, HttpStatus.OK);
    }

    @RequestMapping(value = "/hello2")
    public ResponseEntity<Customer> hello2(Customer customer/*String name, int age*/) {
        //Customer customer = new Customer(name, age)
        customer.setName(customer.getName() + " hello2");
        Book[] books = new Book[2];
        for (int i = 0; i < books.length; i++) {
            books[i] = new Book("isbn000000" + i, "bookname" + i);
        }
        customer.setBooks(books);
        return new ResponseEntity<>(customer, HttpStatus.OK);
    }
}

编译打包

执行maven的目标package

运行

java -jar mavenproject1-1.0-SNAPSHOT.jar
运行

运行结果

hello结果

hello运行结果

hello1结果

hello1运行结果

hello2结果

hello2运行结果

Spring mvc基于注解方式实现简单HelloWorld

实现spring MVC有两种不同的方式:基于XML配置文件和基于注解。 上篇博客介绍了基于XML配置文件的方式,这里我们使用基于注解的方式来实现。 下面只只重点介绍与XML配置文件方式不同的两个...
  • xjc_csdn
  • xjc_csdn
  • 2016-06-08 10:07:23
  • 783

Json website HelloWorld

  • 2016年04月25日 11:56
  • 5.87MB
  • 下载

Linux下终于写出了HelloWorld了

今天我终于写出了helloWorld!这是每一个程序员的起点,呵呵!学会的命令:Here Compile:gcc souce.c -o targetHere Run:./targetGet Path:...
  • YouYunnetyang
  • YouYunnetyang
  • 2005-07-22 23:28:00
  • 706

SpringMVC HelloWorld Restfull 项目

1,什么是Restfull,自己wiki去; 2,项目开发环境:         2.1 eclipse:Mars.2 Release (4.5.2)  (http://www.eclipse.org...
  • GUITK
  • GUITK
  • 2016-05-12 17:13:19
  • 1022

1.一个RestFul的helloworld

1.创建一个maven工程,pom.xml如下
  • qq_34448345
  • qq_34448345
  • 2017-11-27 17:08:10
  • 125

用Jersey构建RESTful服务1--HelloWorld

一、环境 1、Eclipse Juno R2 2. Tomcat 7 3. Jersey 2.7  下载地址( https://jersey.java.net/download.html) ...
  • kkkloveyou
  • kkkloveyou
  • 2014-03-17 15:43:50
  • 37196

REST 实 战 中 文 版

  • 2018年02月02日 14:34
  • 31.03MB
  • 下载

JAX-RS REST helloworld 项目源码

  • 2013年01月06日 16:18
  • 1.3MB
  • 下载

QT5.2.1下Helloworld之详细入门

开发环境:Wndows XP   QT版本:QT5.2.1 一、新建一个文档,命名为Helloqt,将后缀改为.cpp,输入以下代码并保存:         二、打开Qt5.2.1 for De...
  • keyue123
  • keyue123
  • 2014-03-22 20:24:53
  • 1277

springmvc_helloworld_1412

  • 2017年02月11日 14:00
  • 14.89MB
  • 下载
收藏助手
不良信息举报
您举报文章:JavaEE03-SpringBoot实现REST版HelloWorld
举报原因:
原因补充:

(最多只允许输入30个字)