消费者订单模块

1.建module

 

 

 2.改POM

<?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>ckfuture-springcloud</artifactId>
        <groupId>com.ckfuture.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-consumer-order80</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--mysql-connector-java-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--热部署devtools-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入Swagger -->
        <dependency>
            <groupId>com.spring4all</groupId>
            <artifactId>spring-boot-starter-swagger</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.caspar-chen</groupId>
            <artifactId>swagger-ui-layer</artifactId>
        </dependency>
    </dependencies>


</project>

3.建yml

 

 

 

server:
  port: 80

4.主启动

右键java新建class

 

package com.ckfuture.springcloud;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* @descrption: 消费者主启动类
* @author: CKFuture
* @since: 2021-10-11 20:13
* @version: v1.0
* @LastEditTime:
* @LastEditors:
* @copyright: hrbckfuture.com
*/
@SpringBootApplication
public class OrderMain80 {
private static final Logger logger = LoggerFactory.getLogger(OrderMain80.class);
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class,args);
logger.info("------------ OrderMain80 Start Running--------------");
}
}

5.业务实现类

5.1 建立两个实体类,Payment和CommonResult

package com.ckfuture.springcloud.entities;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @descrption: 支付实体类
 * @author: CKFuture
 * @since: 2021-10-09 21:35
 * @version: v1.0
 * @LastEditTime:
 * @LastEditors:
 * @copyright: hrbckfuture.com
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment implements Serializable {
    private Long id;
    private String serial;
}
package com.ckfuture.springcloud.entities;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResult<T>
{
    //返回代码
    private Integer code;
    //返回信息
    private String message;
    //返回数据
    private T      data;

    public CommonResult(Integer code,String message){
        this(code,message,null);
    }
}

5.2 建立OrderController类

 如何在80的controller中调用 8001端口服务呢,这里用到RestTemple。

知识点:

RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。

5.3 建立一个ApplicationContextConfig配置类

package com.ckfuture.springcloud.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @descrption: 配置类
 * @author: CKFuture
 * @since: 2021-10-11 20:29
 * @version: v1.0
 * @LastEditTime:
 * @LastEditors:
 * @copyright: hrbckfuture.com
 */
@Configuration
public class ApplicationContextConfig {
    /**
     * RestTemplate
     * @return
     */
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

 5.4 OrderController代码编写


package com.ckfuture.springcloud.controller;

import com.ckfuture.springcloud.entities.CommonResult;
import com.ckfuture.springcloud.entities.Payment;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

/**
* @descrption: 消费者控制类
* @author: CKFuture
* @since: 2021-10-11 20:52
* @version: v1.0
* @LastEditTime:
* @LastEditors:
* @copyright: hrbckfuture.com
*/
@Api(tags={"消费者接口"})
@RestController
@Slf4j
public class OrderController {

public static final String PAYMENT_URL = "http://localhost:8001";

@Resource
private RestTemplate restTemplate;

@GetMapping("/consumer/payment/create")
public CommonResult<Payment> create(Payment payment){
return restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment, CommonResult.class);
}
@GetMapping("consumer/payment/get/{id}")
public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
}
}

 

 6.测试

启动 8001和80服务

读取测试:

插入测试:

 

 数据库结果:

 

 通过80服务访问8001服务获取结果,亲测成功!!大河弯弯向东流就是这么牛(门儿~)

 7.关于开启RunDashboard

 IDEA在微服务测试时候,有的是不自动开启RunDashboard的,需要在workspace.xml中增加组件。

 

 <component name="RunDashboard">
    <option name="configurationTypes">
        <set>
            <option value="SpringBootApplicationConfigurationType"/>
        </set>
    </option>
    <option name="ruleStates">
        <list>
            <RuleState>
                <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
            </RuleState>
            <RuleState>
                <option name="name" value="StatusDashboardGroupingRule" />
            </RuleState>
        </list>
    </option>
  </component>

 保存后,关闭IDEA重新打开。

 

posted @ 2021-10-11 21:26  创客未来  阅读(60)  评论(0编辑  收藏  举报