购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 编写服务提供者

本节将编写一个服务提供者(用户微服务),该服务可通过主键查询用户信息。为便于测试,使用Spring Data JPA作为持久层框架,使用H2作为数据库。

3.3.1 手动编写项目

1.创建一个Maven项目,它的ArtifactId是microservice-simple-provider-user,pom.xml的内容如下:

img
img

其中,spring-boot-starter-web提供了SpringMVC的支持;spring-boot-starter-data-jpa提供了Spring Data JPA的支持。

2.准备好建表语句,在项目的classpath下建立schema.sql,并添加如下内容:

img

3.准备几条数据,在项目的classpath下建立文件data.sql,并添加如下内容:

img
img

4.创建用户实体类:

img

5.创建DAO:

img

6.创建Controller:

img

Controller中用到的@GetMapping是Spring4.3提供的新注解。它是一个组合注解,等价于@RequestMapping(method=RequestMethod.GET),用于简化开发。同理还有@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping等。

7.编写启动类,在类上使用@SpringBootAppl ication声明这是一个Spring Boot项目。

img

@SpringBootApplication是一个组合注解,它整合了@Configuration、@EnableAutoConf iguration和@ComponentScan注解,并开启了Spring Boot程序的组件扫描和自动配置功能。在开发Spring Boot程序的过程中,常常会组合使用@Configuration、@Enable-AutoConf iguration和@ComponentScan等注解,所以Spring Boot提供了@SpringBootApplication,来简化开发。

8.编写配置文件,命名为application.yml。

img

在传统的Web开发中,常使用properties格式文件作为配置文件。Spring Boot以及Spring Cloud支持使用properties或者yml格式的文件作为配置文件。

yml文件格式是YAML(Yet Another Markup Language)编写的文件格式,YAML和properties格式的文件可互相转换,例如本节中的application.yml,就等价于如下的properties文件。

img

从中不难看出,YAML比properties结构清晰;可读性、可维护性也更强,并且语法非常简捷。因此,本书使用YAML格式作为配置文件。 yml有严格的缩进,并且key与value之间使用 : 分隔,冒号后的空格不能少,请大家注意

img

测试

访问 http://localhost:8000/1 ,获得结果:

img

说明已可通过ID查询用户信息。

3.3.2 使用Spring Initializr快速创建Spring Boot项目

之前是手动创建项目的。事实上,也可使用Spring Initializr快速创建项目。虽然Spring Initializr不能生成应用程序的业务代码,但它可生成基本的项目结构。这样就可以把更多精力放在具体的业务代码上,而无须过分关注项目搭建的过程。

Spring Initializr有以下几种用法:

●通过网页使用。

●通过Spring ToolSuite使用。

●通过IntelliJIDEA使用。

●通过Spring BootCLI使用。

笔者以第一种方式为例进行讲解,其他方式大致类似,请读者自行发掘。

1.访问 http://start.spring.io/ ,会看到类似图3-2的界面。

img

图3-2 Sp ring Initializr首页

2.按照需求,选择项目类型(Maven或Gradle)、Spring Boot的版本,并填写项目元数据以及所需依赖。单击Switch to the fullversion按钮,还可指定额外的信息,例如Java版本、打包方式等。

3.单击Generate Project按钮,就能获得一个名为microservice-simple-provider-user.zip的压缩包文件。解压后,项目结构如下:

img
img

将项目导入到IDE中,就可以进入Spring Boot/Spring Cloud开发之旅了。 xbLH8/pltHxy/4oZgcxwTRP7hx7wlsyfejFKb+GH7LjsN5UW0oMcox+7BDFbhmSc

点击中间区域
呼出菜单
上一章
目录
下一章
×