Maison > Java > javaDidacticiel > le corps du texte

Comment intégrer Maven Grpc avec la démo Springboot

王林
Libérer: 2023-05-13 13:01:26
avant
760 Les gens l'ont consulté

    1. Description

    GRPC définit l'interface basée sur protobuf. Divisé en côté serveur et côté client. Le côté serveur assure l'implémentation de l'interface et le client obtient les données attendues en appelant l'interface côté serveur.

    2. Partie publique

    2.1 Ajouter une dépendance

            <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>
    Copier après la connexion

    Ajouter un plug-in (Remarque : si wagon-provider-api ne peut pas être introduit automatiquement, vous pouvez l'introduire maintenant dans les dépendances pour faciliter le téléchargement des dépendances, puis supprimer le coordonnées de dépendance)

    <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>
    Copier après la connexion

    2.2 Ajouter un fichier de dépendance proto

    Ajoutez le répertoire src/main/proto, et définissez le répertoire sur Source Root, puis ajoutez le répertoire < code>src/main/proto Ajoutez le fichier hello.proto sous , le contenu est le suivantsrc/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){}
    }
    Copier après la connexion

    2.3 通过protobuf生成Java代码

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

    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();
        }
    }
    Copier après la connexion

    2.3 Générez du code Java via protobuf

    Comment intégrer Maven Grpc avec la démo SpringbootUne fois le plug-in importé avec succès , cliquez sur le protobuf:compile</code sélectionné dans l'image ci-dessous > et <code>protbuf:compile-custom générez le code Java correspondant (c'est-à-dire le code de dépendance de l'interface) dans l'ordre

    3. L'implémentation spécifique de l'interface côté serveur

    le code de service est la suivante

    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("牛哈哈");
        }
    }
    Copier après la connexion
    4 côté client L'implémentation spécifique de l'interface🎜🎜le code d'appel de test côté client est la suivante🎜rrreee

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!