Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengintegrasikan grpc maven dengan demo springboot

Bagaimana untuk mengintegrasikan grpc maven dengan demo springboot

王林
王林ke hadapan
2023-05-13 13:01:26761semak imbas

    1. Penerangan

    GRPC mentakrifkan antara muka berdasarkan protobuf. Dibahagikan kepada bahagian pelayan dan bahagian pelanggan. Bahagian pelayan menyediakan pelaksanaan antara muka, dan pelanggan memperoleh data yang diharapkan dengan memanggil antara muka sisi pelayan.

    2. Bahagian awam

    2.1 Tambah kebergantungan

            <dependency>
                <groupId>net.devh</groupId>
                <artifactId>grpc-spring-boot-starter</artifactId>
                <version>2.12.0.RELEASE</version>
            </dependency>
            <dependency>
                <!-- Java 9+ compatibility -->
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
            </dependency>

    Tambah pemalam (Nota: Jika wagon-provider-api tidak boleh diperkenalkan secara automatik, anda kini boleh memperkenalkannya dalam kebergantungan untuk memudahkan kebergantungan Muat turun, dan kemudian padamkan koordinat kebergantungan)

    <plugin>
                    <!--                    protobuf生成插件-->
                    <groupId>org.xolstice.maven.plugins</groupId>
                    <artifactId>protobuf-maven-plugin</artifactId>
                    <version>0.6.1</version>
                    <configuration>
                        <protocArtifact>com.google.protobuf:protoc:3.17.3:exe:${os.detected.classifier}
                        </protocArtifact>
                        <pluginId>grpc-java</pluginId>
                        <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier}
                        </pluginArtifact>
                        <!--默认值-->
                        <protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>
                        <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                        <clearOutputDirectory>false</clearOutputDirectory>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>compile-custom</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

    2.2 Tambah fail kebergantungan proto

    Tambah direktori src/main/proto, dan tetapkan direktori kepada Source Root, dan kemudian tambah direktori src/main/proto Tambah fail hello.proto di bawah dengan kandungan berikut:

    syntax = "proto3"; //指定proto版本
    package com.server;
    // 生成的Java代码的包名
    option java_package = "com.grpc.server";
    // 请求参数
    message HelloReq{
        string name = 1;
    }
    // 返回参数
    message HelloResp{
        string ret = 1;
    }
    // rpc service
    service HelloService{
    	// service中需要进行调用的具体方法
        rpc hello(HelloReq) returns (HelloResp){}
    }

    2.3 Jana kod Java melalui protobuf

    Selepas pemalam berjaya diimport, klik pada protobuf:compile dan protbuf:compile-custom dipilih dalam gambar di bawah untuk menjana Java yang sepadan seterusnya Kod (iaitu, kod pergantungan antara muka)

    Bagaimana untuk mengintegrasikan grpc maven dengan demo springboot

    3 >

    kod perkhidmatan adalah seperti berikut

    import io.grpc.stub.StreamObserver;
    import net.devh.boot.grpc.server.service.GrpcService;
    @GrpcService
    public class HelloService extends HelloServiceGrpc.HelloServiceImplBase {
        @Override
        public void hello(Hello.HelloReq request, StreamObserver<Hello.HelloResp> responseObserver) {
            Hello.HelloResp resp = Hello.HelloResp.newBuilder().setRet("你好-->"+request.getName()).build();
            responseObserver.onNext(resp);
            responseObserver.onCompleted();
        }
    }

    4 antara muka sisi pelanggan Pelaksanaan khusus

    kod panggilan ujian sisi pelanggan adalah seperti berikut

    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    @SpringBootTest
    public class GrpcTest {
        @Autowired
        private HelloSerivce helloSerivce;
        @Test
        public void test1() throws  Exception{
            helloSerivce.haha("牛哈哈");
        }
    }

    Atas ialah kandungan terperinci Bagaimana untuk mengintegrasikan grpc maven dengan demo springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam