无注册中心时候在轮询时候会报错,暂时忽略
写一个controller
package com.jx.user.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/demo")
public class JxDemoController {
@GetMapping("a")
public Object a() throws Exception{
return "demo";
}
}
同样方式创建订单服务order,和操作服务operation
创建之后项目这样的
微服务调用
在微服务架构中,最常见的场景就是为服务之间的相互调用。我们以电商系统中厂件的用户下单为例来演示微服务的调用:客户向订单微服务发起一个订单操作请求,在进行保存订单之前需要调用订单微服务查看是否有该订单
我们一般吧服务的主动调用方称为服务消费方,吧服务的被效用方称为服务提供者。
项目修改
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>DemoAlibab</artifactId>
<groupId>com.demo.aliba</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common</artifactId>
<dependencies>
<!-- 引用Mybatis 和 Mysql驱动开始 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
</project>
创建实体Order
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* @author yangxinlei
* @date 2020/8/11
*/
@Entity(name = "order")
@Data
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; // 主键自增ID
private String name; // 品牌
private String brand;// 签约时间
private String category;//类目
private String expire;// 到期时间
private String amount;//金额
private String contract;// 签约销售
}
创建实体User
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* @author yangxinlei
* @date 2020/8/11
*/
@Entity(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; // 主键自增ID
// 用户名
private String username;
// 密码
private String password;
// 手机号
private String phone;
}
用户服务
1、导入包
2、 创建启动类
3、加载配置文件
4、创建controller service dao
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>DemoAlibab</artifactId>
<groupId>com.demo.aliba</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user</artifactId>
<dependencies>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入工具累-->
<dependency>
<groupId>com.demo.aliba</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
UserApplication.java
package com.jx.user;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @author yangxinlei
* @date 2020/8/10
*/
@SpringBootApplication
@EnableDiscoveryClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class,args);
}
}
JxUserController
package com.jx.user.controller;
import com.jx.user.service.JxUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class JxUserController {
@Autowired
private JxUserService jxUserService;
@GetMapping("getUserList")
public Object getUserList() throws Exception{
return jxUserService.getUserList();
}
}
JxUserService
public interface JxUserService {
Object getUserList() throws Exception;
}
JxUserServiceImpl
package com.jx.user.service.impl;
import com.jx.user.dao.JxUserMapper;
import com.jx.user.service.JxUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author yangxinlei
* @date 2020/8/11
*/
@Service
public class JxUserServiceImpl implements JxUserService {
@Autowired
private JxUserMapper jxUserMapper;
@Override
public Object getUserList() throws Exception {
return jxUserMapper.getUserList();
}
}
JxUserMapper
package com.jx.user.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* @author yangxinlei
* @date 2020/8/11
*/
@Mapper
public interface JxUserMapper {
@Select("select * from user")
List<Map<Object,Object>> getUserList();
}
application.yml
server:
port: 8081
spring:
application:
name: user
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.0.2:3306/demo?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: 123456
logging:
level:
com.jx.user.dao : debug
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
启动访问:127.0.0.1:8081/user/getUserList