Spring Boot 创建HelloWord应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Happy_cloudlife/article/details/85160691

学一门技术我们大多都是以Hello Word来开始的,当我们运行程序看到正常的输出Hello Word会使自己无比的兴奋。接下来我们来介绍以不同的姿势创建Spring Boot项目并编写Hello word程序。

演示环境

  • JDK 1.8
  • Maven 3.5.4
  • IntelliJ IDEA 2018.2.5 (Ultimate Edition)
  • Spring Boot 2.1.1.RELEASE

创建Spring Boot项目

1、使用Maven创建项目

使用Maven创建项目手动添加依赖的方式,是最直接最能理解Spring Boot项目都需要哪些依赖和配置。这里需要使用到mvn archetype:generate命令来创建一个Maven工程的骨架。

mvn archetype:generate -DgroupId=xin.jerome.demo -DartifactId=demo-helloword -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在命令行中执行该命令,生成项目骨架,并导入IDEA。

首先修改pom.xml文件,引入Spring Boot相关的依赖,添加spring-boot-starter-parent依赖。这个依赖指定了Spring Boot的版本,它会帮我们做版本仲裁,避免了因版本不同而引起的版本冲突的问题。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
</parent>

引入spring-boot-starter-web依赖,这个依赖封装好了Spring Mvc试我们方便的去使用,并且我们并不需要指定版本。

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

引入spring-boot-starter-test依赖,方便我们对我们的Spring Boot项目进行测试相关的操作。

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

引入spring-boot-maven-plugin依赖,方便我们对我们的Spring Boot项目进行打包。

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

到这儿我们就完成了我们的添加所有的基础依赖,会有如下结构:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>xin.jerome.demo</groupId>
    <artifactId>demo-helloword</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>demo-helloword</name>
    <url>http://maven.apache.org</url>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

接下来我们需要在包的根路径下编写HelloApplication作为我们的项目的启动类。

package xin.jerome.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Spring Boot项目的启动类
 *
 * @author Jerome Zhu
 */
@SpringBootApplication
public class HelloApplication {

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

}

这里有两个需要注意的点,一是我们需要在我们的类上添加@SpringBootApplication注解,二是我们需要调用SpringApplication的静态run方法,将我们主类和参数作为run方法的参数。到这儿我们项目就创建完成了,我们就可以启动我们的Spring Boot项目了,查看启动日志我们会发现启动在了Tomcat8080端口。到这里其实我们与一个标准的Spring Boot项目结构还需要一些其它目录,具体参照第二种方法创建的官方标准结构。

说明一下Spring Boot使用的是内嵌的Tomcat容器。

2、使用start.spring.io进行创建项目

Spring官方提供了Spring Initializr来让我们便利的创建Spring Boot项目,操作步骤:

  • 首先选择项目的构建工具,这里我们选择Maven
  • 选择编程语言,这里选Java
  • 选择Spring Boot的版本,我这里使用的是2.1.1.RELEASE版本。
  • 在左下方填写Maven的坐标。
  • Search for dependencies中搜索web来添加想要的依赖。
  • 最后只需要点击Generate Project按钮来生成项目即可。

附一张点击Generate Project按钮的之前的图片。

Spring Initializr

创建完项目之后,使用IDEA导入项目即可。

3、使用IntelliJ IDEA创建项目

这个需要说明一下,这个功能只有旗舰版有,社区版是没有这个功能的。网上破解的方法有很多,大家自行解决吧,当然有实力的自行付费也是可以的。创建的步骤:

  • 打开工具,点击New Project,选择Spring Initializr,选择项目的JDK,然后点击Next
  • 填写Maven的坐标信息,项目相关的描叙信息、版本等等,然后点击Next
  • 接下来就是选择Spring Boot的版本(在右上方)和项目相关依赖,之后一路Next就行。

附一张第三步的图片。

IntelliJ IDEA

其实IDEA创建项目和Spring Initializr创建是一样的,只不过使用工具相对比较方便。

编写HelloWord程序

1、编写Controller

通过上面的三种方法创建好的Spring Boot项目,离我们的HelloWord也就差一步。接下来我们就新建一个包controller并且在包下创建HelloController类。

package xin.jerome.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Hello{@link RestController}
 *
 * @author Jerome Zhu
 */
@RestController
public class HelloController {

    @GetMapping("")
    public String sayHello() {
        return "Hello Jerome !";
    }

}

在这个HelloController类中我们使用到了两个注解@RestController@GetMapping。其中@RestController其实是@Controller@ReponseBody的组合注解,标明了我们这个类会作为一个Spring应用的组件,在应用启动进行包扫描的时候会被加载到Spring的容器中。另外@GetMapping其实就是@RequestMapping(method = RequestMethod.GET)的简化版。

2、测试Controller

项目中我们写完一个方法后,对代码的测试也是必不可少的。这里我们就那使用Maven创建的项目来演示,我们首先编写测试的主文件。

package xin.jerome.demo;

import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * Spring Boot 项目测试主文件
 *
 * @author Jerome Zhu
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloApplicationTests {

}

接下来编写Controller的测试文件:

package xin.jerome.demo.controller;

import org.junit.Test;
import xin.jerome.demo.HelloApplicationTests;

import static org.junit.Assert.*;

/**
 * {@link HelloController} 测试
 *
 * @author Jerome Zhu
 */
public class HelloControllerTests extends HelloApplicationTests {

    @Test
    public void sayHello() {
        assertEquals("Hello Jerome !",new HelloController().sayHello());
    }
}

这里我们继承了HelloApplicationTests的主测试文件,这样我们就不用在每个类中配置应用测试相关的环境,只需要在主类中配置好就行。

运行Spring Boot项目

1、使用IDEA运行项目

我们可以在项目的主类HelloApplication运行我们的main方法就行了,当看到Tomcat started on port(s): 8080这句话的时候 ,说明我们的应用就已经运行成功了。

2、使用Jar的方式运行项目

不知大家是否还记得我们在使用Maven创建项目的时候,引入了一个spring-boot-maven-plugin的依赖,这个依赖就是为了帮助我们对项目进行打包的。

使用Maven命令对项目进行打包:

mvn clean package -Dmaven.test.skip=true

执行完该命令后,在项目根目录下的target目录下回生成一个xxx.jar,这里我生成的是demo-helloword-1.0-SNAPSHOT.jar

在命令行中,切换到target目录下使用java -jar的命令运行项目:

java -jar demo-helloword-1.0-SNAPSHOT.jar

我们同样能看到启动日志Tomcat started on port(s): 8080的输出,代表我们的应用启动成功了。

访问项目

我们通过两种方式运行了我们的应用,接下来我们通过浏览器访问http://localhost:8080/在浏览器中会有如下图的结果:

访问结果

总结

通过我们上面的一顿操作,我们学会了三种创建Spring Boot项目的姿势和两种运行Spring Boot项目的方法。其中使用Maven创建项目和使用Jar的方式运行项目是动手操作能力相对比较强的,会让我们对Spring Boot项目印象更加深刻。当然创建方式和运行方式不止我介绍的这几种,上面的已经满足了我们日常的需求。

具体代码请参考GitHub:spring-boot-demo-helloword小节。

原文链接:Spring Boot 创建HelloWord应用

猜你喜欢

转载自blog.csdn.net/Happy_cloudlife/article/details/85160691
今日推荐