两个月学习springcloud(2):搭建eureka服务提供者

前面已经搭建好eureka注册中心了,这次搭建eureka服务提供者,提供自身实例服务供其他eureka客户端调用。笔者数据库选用的是h2,原因是无需搭建数据库,方便快捷。

1.新建eureka-producer模块,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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.feng</groupId>
        <artifactId>cloud-study</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>eureka-producer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-producer</name>
    <description>cloud study for two month</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.application.yml文件配置

spring:
  application:
    name: eureka-producer
  jpa:
    showSql: true
    generateDdl: false
    hibernate:
      ddlAuto: none
  datasource:
    platform: h2
    schema: classpath:schmea.sql
    data: classpath:data.sql
server:
  port: 8802
  servlet:
    context-path: /producer

eureka:
  instance:
    instanceId: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}} #获取要在eureka注册的此实例的唯一ID(在appName范围内)
    hostname: localhost  #主机名(如果可以在配置时确定的话)

  client:
    enabled: true #是否开启eureka客户端标识
    registerWithEureka: true #注册本身实例到eureka,默认true
    fetchRegistry: true #拉取eureka其他注册实例到本地,默认true
    serviceUrl: #可用区映射到与eureka服务器通信的标准URL列表。每个值可以是单个URL,也可以是逗号分隔的*位置列表。通常,eureka服务器URL带有协议,主机,端口,上下文和版本信息(如果有)。示例: https://ec2-256-156-243-129.compute-1.amazonaws.com:7001/eureka/ 更改在下一个服务URL刷新周期(由eurekaServiceUrlPollIntervalSeconds指定)下在运行时有效
      defaultZone: http://localhost:8801/register/eureka/ #默认defaultZone:http://localhost:8761/eureka/






3.编辑schmea.sql和data.sql,schmea.sql是建表语句,data.sql是添加数据语句

schmea.sql

create table MOVIE(

uuid varchar (32) not null  COMMENT '主键',
name varchar (32) DEFAULT null COMMENT '电影名',
price varchar (11) DEFAULT null COMMENT '价格',
time  varchar (20) DEFAULT null COMMENT '放映时间',
primary key(uuid)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

data.sql

insert into MOVIE (uuid,name,price,time) values ('1','哪吒传奇','35.9','20190929');
insert into MOVIE (uuid,name,price,time) values ('2','阿甘正传','25','20191029');
insert into MOVIE (uuid,name,price,time) values ('3','海上钢琴师','48','20190827');
insert into MOVIE (uuid,name,price,time) values ('4','战狼','55','20191120');

4.搭建dao层和POJO

package com.feng.cloud.study.mapper;

import com.feng.cloud.study.entity.MovieVo;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @author: fengyantao
 * @date: 2019/9/26 下午9:48
 * @version: V1.0
 * @review: fengyantao/2019/9/26 下午9:48
 */
public interface MovieRepository extends JpaRepository<MovieVo, String> {

    List<MovieVo> findAll();
}
package com.feng.cloud.study.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;

/**
 * @author: fengyantao
 * @date: 2019/9/26 下午9:49
 * @version: V1.0
 * @review: fengyantao/2019/9/26 下午9:49
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@Entity(name = "movie")
public class MovieVo implements Serializable {

    private static final long serialVersionUID = -6799861275124457101L;
    @Id
    private String uuid;

    private String name;

    private String price;

    private String time;
}

5.编写controller,测试效果如何

package com.feng.cloud.study.controller;

import com.alibaba.fastjson.JSONObject;
import com.feng.cloud.study.entity.MovieVo;
import com.feng.cloud.study.mapper.MovieRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author: fengyantao
 * @date: 2019/11/6 下午3:22
 * @version: V1.0
 * @review: fengyantao/2019/11/6 下午3:22
 */
@RestController
@RequestMapping("/movie")
public class MovieController {

    @Autowired
    private MovieRepository movieRepository;

    @GetMapping("/getAllMovies")
    public String getAllMovies() {
        List<MovieVo> voList = movieRepository.findAll();
        return JSONObject.toJSONString(voList);
    }

    @GetMapping("/test")
    public String testMovie() {

        return "SUCCESS";
    }
}

6.启动项目,访问http://localhost:8801/register/,可以看到eureka-producer已经注册成功了

 

到此为止,eureka服务提供者eureka-producer已经搭建完成了,代码git地址:https://github.com/fengyantao/cloud-study/tree/master  

大家如果有疑问,欢迎下方留言沟通!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值