SpringCloud(1)创建服务提供者与消费者

相关依赖

提供者:

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.22</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>com.hht.cloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

消费者:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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>

支付业务代码(提供者)

结构如下:
在这里插入图片描述
yml配置:

spring:
  application:
    name: cloud-payment-service
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/cloutstudy
    #指定数据源为druid
    type: com.alibaba.druid.pool.DruidDataSource
  devtools:
    restart:
      #增加热部署检测时间,防止出现404
      poll-interval: 3s
mybatis:
  mapper-locations: classpath:mapper/*.xml
server:
  port: 8011

主要业务服务代码:

创建和查询操作:

@Service
public class PaymentServiceImpl implements PaymentService {
    
    

    @Resource
    PaymentMapper paymentMapper;

    @Override
    public int create(Payment payment) {
    
    
        return paymentMapper.create(payment);
    }

    @Override
    public Payment getPaymentById(Long id) {
    
    
        return paymentMapper.getPaymentById(id);
    }
}

订单业务代码(消费者)

结构如下:
在这里插入图片描述
目前还没有使用注册中心来注册服务,所以先使用restTemplate来进行远程调用提供者的业务服务

容器配置类:

@Configuration
public class ApplicationContextConfig {
    
    

    //注册restTemplate进容器
    @Bean
    public RestTemplate getRestTemplate(){
    
    
        return new RestTemplate();
    }
}

控制器如下:

@RestController
@Slf4j
@RequestMapping("/consumer/payment")
public class OrderController {
    
    

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

    @Autowired
    private RestTemplate restTemplate;

    @PostMapping("/create")
    public CommonResult<Payment> create(Payment payment){
    
    
        return restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment,CommonResult.class);
    }

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

猜你喜欢

转载自blog.csdn.net/qq_41120971/article/details/107873807