昔我往矣

十分钟快速构建你的第一个springboot的项目

2017年02月26日

springboot是最流行的Java微服务框架之一,本文从基础的Javamavne环境搭建开始,详细的展示了如何利用http://start.spring.io快速开发一个简单的springboot项目。

系统和软件版本如下:

maven 3.3.9
jdk 1.8.0
CentOS 6

tips: 注意版本,必须使用maven3和jdk,maven2和jre可能会编译失败。

搭建JDK和maven3环境

首先配置Java和maven环境:

tips: 下载jdk可能需要登录oracle官网

cd /opt
$ wget http://download.oracle.com/otn/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz
$ wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar xvf jdk-8u112-linux-x64.tar.gz
$ tar xvf apache-maven-3.3.9-bin.tar.gz

修改用户的PATH环境变量,在 ~/.bash_profile 最后新增如下两行:

$ export JAVA_HOME=/opt/jdk1.8.0_112
$ export PATH=/opt/apache-maven-3.3.9/bin:$JAVA_HOME/bin/:$PATH

确认安装成功和安装的版本信息:

$ source  ~/.bash_profile
$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

$ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /opt/apache-maven-3.3.9
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_112/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.7-x86_64-linode80", arch: "amd64", family: "unix"

利用start.spring.io快速构建spring代码框架

打开 http://start.spring.io/,填入GroupArtifact信息,如下:

start.spring.io

点击"Generate Project"下载项目压缩包,你会获得一个hello.zip,把它mv/opt目录下,查看start.spring.io生成的目录结构:

$ unzip hello.zip
$ tree -F hello
hello
├── mvnw*
├── mvnw.cmd
├── pom.xml
└── src/
    ├── main/
    │   ├── java/
    │   │   └── me/
    │   │       └── xnow/
    │   │           └── HelloApplication.java
    │   └── resources/
    │       ├── application.properties
    │       ├── static/
    │       └── templates/
    └── test/
        └── java/
            └── me/
                └── xnow/
                    └── HelloApplicationTests.java
12 directories, 6 files

tree命令的结果来看:

  • pom.xml是maven的主要配置文件,会自动解决依赖包的问题,由于我们在Dependencies中选择了web,所以它pom.xml中有如下行:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

这段配置会自动解决springbootweb服务依赖包。

  • src/main/resources/是资源目录,其下的application.properties是项目的配置文件,static/用来存放静态文件,templates/用来存放模板文件。
  • src/main/java/me/xnow/HelloApplication.java 是应用代码,后面我们会修改它。
  • test/ 下面是测试文件

开发和运行springboot应用

打开 src/main/java/me/xnow/HelloApplication.java 文件,修改其中的代码如下:

package me.xnow;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
@SpringBootApplication

public class HelloApplication {

    @RequestMapping("/")
    String index() {
        return "welcome to my first springboot project";
    }
    
    @RequestMapping(value = "/sayhi", method = RequestMethod.GET)
    String sayhi(@RequestParam("name") String name) {
        return "Hi, " + name;
    }

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

以上的代码中定义了两条路由,一个是index主页,另一个是/sayhi,需要使用GET方法为它传递name参数。保存好以上代码之后,编译和运行:

$ mvn clean
$ mvn package
# run 
$ java -jar target/hello-0.0.1-SNAPSHOT.jar

稍等几秒钟,spring会打开8080端口,使用curl测试下服务:

$ curl localhost:8080
welcome to my first springboot project

$ curl localhost:8080/sayhi?name=xnow
Hi, xnow

这个效果,如你所愿。恭喜你,完成了你的第一个springboot项目。

当前暂无评论 »

添加新评论 »