Skip to content

imlinhao/website-hello-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

个人网站搭建系列: Spring Boot Hello World

小插曲

本系列文章,持续更新,关注浩的个人网站http:https://linhao.cfapps.io/

基础准备

开发环境及工具

参考站点

目标与方法描述

通过Spring Boot快速地建立一个应用。

通过编写pom.xml来引入Spring Boot提供的基础组件,然后编写Example.java来包含基本的Spring Boot应用逻辑。

Spring Boot Hello World

pom.xml

首先新建Maven的pom.xml文件,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http:https://maven.apache.org/POM/4.0.0" xmlns:xsi="http:https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http:https://maven.apache.org/POM/4.0.0 http:https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.2.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>

parent节中spring-boot-starter-parent提供了许多有用的Maven设置。dependency中的spring-boot-starter-web,提供了web开发所需要的诸多依赖。plugin下的spring-boot-maven-plugin主要是用于编译可执行jar包,下文中我们还会进一步解释。

Example.java

由于Maven默认会编译src/main/java目录下的代码,所以需要先建立这个目录结构,然后添加一个文件src/main/java/Example.java

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

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

代码中的Annotation解释如下:

  • @RestController : @RestController继承自@Controller,该注解表示Example类为一个web @Controller,Spring在处理web请求时,可以使用它。
  • @RequestMapping : @RequestMapping提供了“路由”信息,在此它告诉Spring,任何路径为"/"的HTTP请求都将映射到home方法。之前的@RestController表明Spring将会直接回复“原始字符串”给调用者。
  • @EnableAutoConfiguration : 这个注解告诉Spring,根据已经配置的jar的依赖关系,去猜测如何配置Spring。比如之前的spring-boot-starter-web包含了Tomcat和Spring MVC,那么auto-configuration就会假设目前正在进行web应用开发,从而对Spring进行相应的配置。

main方法:代码中,最后一块需要解释的部分是main方法,之所以取名为main,主要是遵从了Java应用入口名字为main的惯例。在此,main方法通过调用run,代理了Spring Boot的SpringApplication类。SpringApplication将会启动应用,启动中的Spring将会启动被auto-configure的Tomcat web server。我们需要将Example.class作为run方法的一个参数,告诉SpringApplication,基础的Spring组件是谁。args参数,则是为了接收命令行传递过来的参数。

启动应用

拥有了pom.xmlExample.java之后,我们的应用就可以启动了。由于我们使用了spring-boot-starter-parent POM,从而拥有了一个非常有用的goal run,可以通过它来启动应用。通过命令mvn spring-boot:run,我们便可以启动应用了。

$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.2.2.RELEASE)

启动之后,打开浏览器输入http:https://localhost:8080,就可以看到如下输出:

Hello World!

退出应用,在命令行按下ctrl-c

建立可执行jar包

可执行jar包,包含了工程编译的class文件,以及class文件所依赖的所有jar包。

为了建立可执行jar包,我们需要使用spring-boot-maven-plugin,查看之前给出的pom.xml,我们已经在plugin下给出了这个插件。

命令行执行mvn package

$ mvn package

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.2.2.RELEASE:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

这个时候,查看target目录,里面将会有个myproject-0.0.1-SNAPSHOT.jar。然后执行java -jar命令:

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.2.2.RELEASE)

项目又以可执行jar包的方式运行了,退出,只要命令行敲入ctrl-c

About

Spring Personal Website

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages