Heim  >  Artikel  >  Java  >  So integrieren Sie Maven GrPC in die Springboot-Demo

So integrieren Sie Maven GrPC in die Springboot-Demo

王林
王林nach vorne
2023-05-13 13:01:26781Durchsuche

    1. Beschreibung

    GRPC definiert die Schnittstelle basierend auf Protobuf. Unterteilt in Serverseite und Clientseite. Die Serverseite stellt die Schnittstellenimplementierung bereit, und der Client erhält die erwarteten Daten durch Aufrufen der serverseitigen Schnittstelle.

    2. Öffentlicher Teil Abhängigkeitskoordinaten)

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

    2.2 Proto-Abhängigkeitsdatei hinzufügen

    Fügen Sie das Verzeichnis src/main/proto hinzu, setzen Sie das Verzeichnis auf Source Root und fügen Sie dann das Verzeichnis src/main/proto Fügen Sie die Datei hello.proto unter hinzu. Der Inhalt lautet wie folgt

    <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.3 Generieren Sie Java-Code über protobuf

    Nachdem das Plug-In erfolgreich importiert wurde , klicken Sie auf den im Bild unten ausgewählten protobuf:compile und protbuf:compile-custom generiert nacheinander den entsprechenden Java-Code (d. h. den Schnittstellenabhängigkeitscode)

    src/main/proto,并将目录设置为Source Root,然后在目录src/main/proto下添加文件hello.proto,内容如下

    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 通过protobuf生成Java代码

    插件导入成功后,点击下图选中的protobuf:compileprotbuf:compile-custom

    So integrieren Sie Maven GrPC in die Springboot-Demo3. Die spezifische Implementierung des serverseitigen Schnittstellen-Servicecodes lautet wie folgt:

    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();
        }
    }

    Das obige ist der detaillierte Inhalt vonSo integrieren Sie Maven GrPC in die Springboot-Demo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen