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

Bagaimana untuk mengintegrasikan grpc maven dengan demo springboot

王林
Lepaskan: 2023-05-13 13:01:26
ke hadapan
813 orang telah melayarinya

    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>
    Salin selepas log masuk

    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>
    Salin selepas log masuk

    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){}
    }
    Salin selepas log masuk

    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();
        }
    }
    Salin selepas log masuk

    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("牛哈哈");
        }
    }
    Salin selepas log masuk

    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan