|
|
|
|
移动端

2.3.1 从骨架项目开始

《Spring微服务实战》第2章使用Spring Boot构建微服务,Spring,本章将演示如何从这些角色的视角使用Spring Boot和Java设计和构建一组微服务。到本章结束时,读者将有一个可以打包并部署到云的服务。本节为大家介绍从骨架项目开始。

作者:陈文辉 译来源:人民邮电出版社|2018-05-23 14:30

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.3.1 从骨架项目开始

首先,要为许可证服务创建一个骨架项目。读者可以从本章的GitHub存储库拉取源代码,也可以创建具有以下目录结构的许可证服务项目目录:

licensing-service

src/main/java/com/thoughtmechanix/licenses

controllers

model

services

resources

一旦拉取或创建了这个目录结构,就可以开始为项目编写Maven脚本。这就是位于项目根目录下的pom.xml文件。代码清单2-1展示了许可证服务的Maven POM文件。

代码清单2-1 许可证服务的Maven POM文件

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <project xmlns=http://maven.apache.org/POM/4.0.0  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
  5.     ➥  http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  6.   <modelVersion>4.0.0</modelVersion> 
  7.   <groupId>com.thoughtmechanix</groupId> 
  8.   <artifactId>licensing-service</artifactId> 
  9.   <version>0.0.1-SNAPSHOT</version> 
  10.   <packaging>jar</packaging> 
  11.   <name>EagleEye Licensing Service</name> 
  12.   <description>Licensing Service</description> 
  13.   <parent> 
  14.     <groupId>org.springframework.boot</groupId> 
  15.     <artifactId>spring-boot-starter-parent</artifactId>    ⇽---  告诉Maven包含Spring Boot起步工具包依赖项  
  16.     <version>1.4.4.RELEASE</version> 
  17.     <relativePath/> 
  18.   </parent> 
  19.   <dependencies> 
  20.     <dependency> 
  21.       <groupId>org.springframework.boot</groupId> 
  22.       <artifactId>spring-boot-starter-web</artifactId>    ⇽---  告诉Maven包含Spring Boot Web依赖项  
  23.     </dependency> 
  24.     <dependency> 
  25.       <groupId>org.springframework.boot</groupId> 
  26.       <artifactId>spring-boot-starter-actuator</artifactId>    ⇽---  告诉Maven包含Spring Actuator依赖项  
  27.     </dependency> 
  28. </dependencies> 
  29. <!—- 注意:某些构建属性和Docker构建插件已从此pom中的pom.xml中排除掉了(GitHub存储库的  
  30.      源代码中并没有移除),因为它们与这里的讨论无关。  
  31.     --> 
  32. <build> 
  33.   <plugins> 
  34.      <plugin> 
  35.        <groupId>org.springframework.boot</groupId> 
  36.        <artifactId>spring-boot-maven-plugin</artifactId>    ⇽---  告诉Maven包含Spring特定的Maven插件,用于构建和部署Spring Boot应用程序  
  37.      </plugin> 
  38.     </plugins> 
  39.   </build> 
  40. </project> 

这里不会详细讨论整个脚本,但是在开始的时候要注意几个关键的地方。Spring Boot被分解成许多个独立的项目。其理念是,如果不需要在应用程序中使用Spring Boot的各个部分,那么就不应该“拉取整个世界”。这也使不同的Spring Boot项目能够独立地发布新版本的代码。为了简化开发人员的开发工作,Spring Boot团队将相关的依赖项目收集到各种“起步”(starter)工具包中。Maven POM的第一部分告诉Maven需要拉取Spring Boot框架的1.4.4版本。

Maven文件的第二部分和第三部分确定了要拉取Spring Web和Spring Actuator起步工具包。这两个项目几乎是所有基于Spring Boot REST服务的核心。读者会发现,服务中构建功能越多,这些依赖项目的列表就会变得越长。

此外,Spring Source还提供了Maven插件,可简化Spring Boot应用程序的构建和部署。第四部分告诉Maven构建脚本安装最新的Spring Boot Maven插件。此插件包含许多附加任务(如spring-boot:run),可以简化Maven和Spring Boot之间的交互。

最后,读者将看到一条注释,说明Maven文件的哪些部分已被删除。为了简化,本书没有在代码清单2-1中包含Spotify Docker插件。

注意

本书的每一章都包含用于构建和部署Docker容器的Docker文件。读者可以在每章代码部分的README.md文件中找到如何构建这些Docker镜像的详细信息。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Struts 2权威指南:基于WebWork核心的MVC开发

本书所介绍的Struts 2已经完全超出了Struts 1框架原有的高度,Struts 2建立在Struts 1和WebWork两个框架整合的基础之上,因此提供了更多优...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊