请填写红包接口调用ip_我一直在想,如何模拟一个服务调用的场景?

1. 微服务场景模拟

首先,我们需要模拟一个服务调用的场景。例如:提供一个获取人员信息的服务。

2. 服务提供者

我们新建一个项目,对外提供查询人员的服务。

3. 创建数据库

create table `tb_person` (

`id` double ,

`name` varchar (60),

`age` double ,

`sex` double ,

`birthday` date ,

`created` datetime ,

`updated` datetime ,

`remarks` varchar (75)

);

4. 使用eclipse创建工程

4.1. 借助于Spring提供的快速搭建工具:

193e4dc1800899d86ffa92c22021710c.png

4.2. 填写项目信息:

476f831b5139de26caa209c1512e40d8.png

4.3. 添加web依赖,mysql依赖

16c81a736aaec0e5d4827949d7bd5ae3.png

4.4. 添加mybatis依赖

b7aa9d2abafe6c60c8f608ea758ece6b.png

4.5. 生成项目的结构

101ab9084d708a8d6ccd3e63db21019b.png

4.6. 依赖也已经全部自动引入:

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.bootspring-boot-starter-parent2.1.1.RELEASEcom.dwkperson-service-demo0.0.1-SNAPSHOTwarperson-service-demoDemo project for Spring Boot1.8org.springframework.bootspring-boot-starter-jdbcorg.springframework.bootspring-boot-starter-weborg.mybatis.spring.bootmybatis-spring-boot-starter1.3.2mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-tomcatprovidedorg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-maven-plugin

当然,因为要使用通用mapper,所以我们需要手动加一条依赖:

tk.mybatis mapper-spring-boot-starter 2.0.4

ok!

注意:SpringCloud中mysql驱动包默认是8.x,太高了,可能会引起问题,所以需要修改成5.x

mysql  mysql-connector-java  runtime5.1.47

5. 编写代码

添加一个对外查询的接口:

@RestController@RequestMapping("person")public class PersonController { @Autowired private PersonService personService; @GetMapping("/{id}") public Person queryById(@PathVariable("id") Long id) { return this.personService.queryById(id); }}Service:@Servicepublic class PersonService { @Autowired private PersonMapper personMapper; public Person queryById(Long id) { return this.personMapper.selectByPrimaryKey(id); }}mapper:@Mapperpublic interface PersonMapper extends tk.mybatis.mapper.common.Mapper{}

实体类:

@Table(name = "tb_person")public class Person implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // 姓名 private String name; // 年龄 private Integer age; // 性别,1男性,2女性 private Integer sex; // 出生日期 private Date birthday; // 创建时间 private Date created; // 更新时间 private Date updated; // 备注 private String remarks; // 。。。省略getters和setters}

属性文件,这里我们采用了yaml语法,而不是properties:

server:

port: 8082

spring:

datasource:

url: jdbc:mysql://localhost:3306/mydb1?useUnicode=true&characterEncoding=utf8

username: root

password: root

driver-class-name: com.mysql.jdbc.Driver

application:

name: user-service # 应用名称

main:

allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册

# druid:

# initial-size: 1

# min-idle: 1

# max-active: 20

# test-on-borrow: true

# stat-view-servlet:

# allow: true

eureka:

client:

service-url: # EurekaServer地址

defaultZone: http://127.0.0.1:10086/eureka

instance:

prefer-ip-address: true # 当调用getHostname获取实例的hostname时,返回ip而不是host名称

ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找

6. 项目结构:

68940d311cc25959005ae650ab4bb5b5.png

7. 启动并测试:

启动项目,访问接口:http://localhost:89/person/findAll

4e2675a6a42359d7e58da15c0eb2f81b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值