spring 学习 (1) 一个REST简单的例子

今天希望能用spring 来做一个hello world 的REST 应用,体会一下。

- 基本上是按照spring 官网的例子做的。

1 环境的建立

2 简单的代码

3 如何构建。

4 测试

5 其他 -STS导入

6 下一步,以及注意事项

-----------------------------------------

1 环境

- STS

本来是已经装好了eclipse, 为了体会STS开发的感觉,于是做升级, 但是总是有问题。 于是干脆下载了一个STS 的4.3 的版本https://spring.io/tools/sts/all

发现web, eclipse 都集成了。 这么方便 何乐而不为呢 ^_^

- Gradle

没有用过, 也想尝试一下这个号称比maven 还新的构建工具的优劣, 所以也安装了。

下载包, 然后解压缩, 再设置环境变量。 测试 gradle -v 就可以了

可以参考 http://my.codeweblog.com/moziqi/blog/308842

- maven

maven 也没有怎么用过, 只是知道他确实比较方便,由于包的依赖可以再pom 中设置自动下载。 但是和ant 还是有不少区别, 尤其是是java 项目的代码结构上。

下载了zip 的版本。 https://maven.apache.org/download.cgi?Preferred=ftp://mirror.reverse.net/pub/apache/

然后同样解压缩, 设置环境变量。 测试 mvn -v 就可以了

-- 安装maven 遇到问题, mvn -v 有support exception。 一看就知道是java 版本问题。 直接下载了java 1.7 然后设置环境变量。 再测试, 就没有问题了。

2 简单的代码

首先创建文件夹 src/main/java/hello.

Greeting.java

package hello;
public class Greeting {
    private final long id;
    private final String content;
    public Greeting(long id, String content) {
        this.id = id;
        this.content = content;
    }
    public long getId() {
        return id;
    }
    public String getContent() {
        return content;
    }
}

Application.java

package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

GreetingController.java

package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();
    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

注意

1) 如果加代码。

package 是hello。 报错。 发现问题是source 的问题。 就是项目的source 不是用的src main java 而是src

2) GreetingController

发现spring 的都无法调用 语法错误。 猜测如果做了build 应该就会download了。

- 那么看起来maven 写好了需要先buld 一下?

3 构建过程

1) mvn spring-boot:run - 过程可能比较久, 因为要download 依赖的包。

然后就可以测试了 wow

你可以看到已经启动了

2015-05-09 12:23:05.491 INFO 23532 --- [ main] hello.Application

: Started Application in 8.026 seconds (JVM running for 10.025)

浏览器 http://localhost:8080/greeting

你可以看到显示:

{"id":1,"content":"Hello, World!"}

2) 方式2 mvn clean package

不明白这时候还在download 什么,

3) gradle

./gradlew bootRun


4) ./gradlew build  -- 这样可以先build 出jar 然后

java -jar build/libs/gs-rest-service-0.1.0.jar

4 测试

浏览器 输入 http://localhost:8080/greeting?name=user

{"id":1,"content":"Hello, user!"}

5 其他

1) 之前自己也同样的操作, 以为15分钟就可以搞定, 但是遇到了很多问题。

- jdk 版本问题, 应该是用1.7. 如果是1.6 就是unsupported

- 无法执行jar, 因为自己没有绑定tomcat。 这个目前是通过创建dynamic web service 来做的。 绑定了tomcat。 不知道原理以及是否有别的方式。

2) Spring 官网的指南做的非常人性化。 可以STS 直接导入。

但是总觉得太方便了隐藏了很多东西。 最好还是自己手把手做。 最后可以考虑尝试一下就好了。

过程呢, 就是就是new 一个工程, import from spring guide。 列表中选择rest 这个。

也可以选择是gradle 还是maven 还有是初始版的还是最终版的。 点击完成, 就全建好了。

6 Next

1) Ioc 使用一下

2) spring mvc 的例子。

TODO

1 pom 还看不懂 需要学习一下

有意思, spring-boot-starter-web 里面

Effective POM = Your POM + (grand)parent POMs. The Effective POM does not exist on your filesystem per se, it's generated on-the-fly whenever your run a Maven build

- 那么看起来maven 写好了需要先buld 一下?

2 pojo

javabean

EJB bean

3

- 无法执行jar, 因为自己没有绑定tomcat。 这个目前是通过创建dynamic web service 来做的。 绑定了tomcat。 不知道原理以及是否有别的方式。

分类:开源 时间:2015-05-09 人气:5179
本文关键词: spring Rest
分享到:

相关文章

iOS 开发

Android 开发

Python 开发

JAVA 开发

开发语言

PHP 开发

Ruby 开发

搜索

前端开发

数据库

开发工具

开放平台

Javascript 开发

.NET 开发

云计算

服务器

Copyright (C) codeweblog.com, All Rights Reserved.

CodeWeblog.com 版权所有 闽ICP备15018612号

processed in 0.048 (s). 13 q(s)