《Spring Cloud微服务架构进阶》——3.2 构建一个微服务

举报
华章计算机 发表于 2019/06/03 01:12:15 2019/06/03
【摘要】 本书摘自《Spring Cloud微服务架构进阶》——书中的第3章,第3.2节作者是朱荣鑫、张天、黄迪璇。

3.2 构建一个微服务

下面通过构建简单的RESTful应用,了解Spring Boot的基本开发流程,体验其简单、易用的特性。创建Spring Boot项目很简单,如果使用STS或IDEA的话,新建Spring Starter项目(Spring Initializer)即可。也可以从https://start.spring.io/直接创建项目,下面分别介绍这两种方式。

1. IDEA生成

使用IDEA生成项目的主要过程如下:

1)Spring Initializer创建项目。

IDEA新建项目有多种方式,在图3-1中选择Spring Initializer的方式创建项目。

image.png

图3-1 Spring Initializer创建项目

2)设置项目的基本信息。

如图3-2所示,可以设置创建项目的包名、Group的Id、Artifact的Id和Java的版本等信息。

image.png

图3-2 设置项目基本信息

3)添加依赖。

图3-3用于添加Spring Boot的依赖。

image.png

图3-3 添加依赖

首先是Spring Boot的版本,图中使用了2.0.0正式版。并且添加了Web开发的依赖,这里可以添加的依赖很多,如spring-boot-data、security、lombok等等。添加依赖如下:

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.0.0.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

</parent>

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

</dependencies>

引入的依赖是在图3-3中选定的。指定项目的parent之后,就可以在引入依赖时,不再指定依赖的版本号。spring-boot-starter-web依赖包中内置了默认的容器Tomcat,如果想要使用其他容器,如Jetty和Undertow容器,可以进行如下修改,指定默认的容器为Jetty:

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

        <exclusions>

            <exclusion>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-tomcat</artifactId>

            </exclusion>

        </exclusions>

    </dependency>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-jetty</artifactId>

    </dependency>

<dependencies>

4)启动类与控制类。

启动类和控制类的代码如下所示:

@SpringBootApplication

@RestController

public class Chapter3BootDemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(Chapter3BootDemoApplication.class, args);

    }

    @GetMapping("/test")

    public String test() {

        return "this is a demo boot.";

    }

}

SpringMVC中使用了3个注解作用于Chapter3BootDemoApplication类,分别是@Configuration(2.0.0版本中添加了@SpringBootConfiguration注解来代替Spring的标准配置注解@Configuration)、@EnableAutoConfiguration和@ComponentScan。SpringBoot提供了一个统一的注解@SpringBootApplication,默认属性下等于上述3个注解。

@RestController组合了@Controller和@ResponseBody注解,表明该类可以处理HTTP请求,并且返回JSON类型的响应。Spring Initializer会自动为应用生成对应的启动类,一般以*Application方式进行命名。

在启动类中增加控制类的端点,暴露出/test的端点。同时在application.properties中设置服务器启动的端点,如下所示:

server.port=8000

服务器会使用内置的Tomcat容器进行启动,服务器端口为8000。这样一个简单的Spring Boot Web应用就写好了,正常访问接口http://localhost:8000/test即可。

2. Initial生成

如果不想使用IDEA的话,也可以在Spring官方网站https://start.spring.io/创建项目,再将创建好的项目下载到本地,解压之后导入到IDEA中。

1)创建项目。如图3-4所示,填写Group的Id、Artifact的Id和项目依赖。添加项目依赖时,根据输入的关键字,会有下拉框选择提示。填好这些信息,就可以生成对应的项目。生成的项目会自动下载。

image.png

图3-4 创建项目

2)解压并导入项目。解压下载好的项目之后,会发现项目结构和IDEA中生成的一样如图3-5所示,因为IDEA中调用的API接口是Spring官方的项目生成器接口。

image.png

图3-5 解压后的项目结构


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。