第一个spring boot应用

前提

首先要确保已经安装了java和maven:

$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_102, vendor: Oracle Corporation

创建POM

需要创建Maven的pom.xml文件,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>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>2.0.0.BUILD-SNAPSHOT</version>
    </parent>

    <!-- Additional lines to be added here... -->

    <!-- (you don't need this if you are using a .RELEASE version) -->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
</project>

此时就可以将项目导入IDE了。

添加Classpath依赖

Spring Boot提供了一些“Starters”让用户将jar包添加到classpath。上面给出的样例已经包含了spring-boot-starter-parent依赖。

因为我们要开发一个WEB应用,所以引入spring-boot-starter-web依赖。在加入之前我们可以通过如下命令来看现在已经有哪些依赖:

$ mvn dependency:tree

[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

mvn dependency:tree命令将项目的依赖以树的形式表现出来,可以看到spring-boot-starter-parent自身并不提供依赖。

将spring-boot-starter-web依赖添加到pom.xml文件的parent部分:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

写代码

创建src/main/java路径,添加Example.java到路径中:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
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);
    }

}

 @RestController and @RequestMapping 注解

例子中的第一个注解是@RestController,Spring通过该注解知道这个类扮演某个具体的角色。

我们的类是一个Web @Controller,所以Spring认为它处理Web请求。

@RequestMapping提供路由信息,它告诉Spring所有以/为路径的HTTP请求都应该被映射到home方法。

@RestController告诉Spring将结果字符串传递给调用者

@EnableAutoConfiguration注解

告诉Spring通过你的依赖来猜测你要开发什么样的应用,因为spring-boot-starter-web添加了tomcat和Spring-MVC,

auto-configuration推断你要开发一个Web应用,并相应的建立Spring。

The“main” Method

main方法通过调用run代理了Spring Boot的SpringApplication

运行程序

$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )\___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.0.0.BUILD-SNAPSHOT)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

然后访问localhost:8080

创建可执行jar包

为了创建可执行jar包,需要将spring-boot-maven-plugin加入到pom.xml中(添加到dependency部分下面):

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

保存pom.xml,运行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:2.0.0.BUILD-SNAPSHOT:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

现在打开target目录,会有myproject-0.0.1-SNAPSHOT.jar.original文件和myproject-0.0.1-SNAPSHOT.jar文件。

最后可以通过java -jar运行。

原文地址:https://www.cnblogs.com/jugglee/p/8036354.html