在线咨询
QQ咨询
服务热线
服务热线:13125520620
TOP

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

发布时间:2018-6-23 浏览:2876

今天希望能用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。 不知道原理以及是否有别的方式。
 

TAG
软件定制,软件开发,瀚森HANSEN
0
该内容对我有帮助