packagecom.example.demo.grpc.server;importcom.example.demo.protogen.User;importcom.example.demo.protogen.UserServiceGrpc;importio.grpc.stub.StreamObserver;importnet.devh.boot.grpc.server.service.GrpcService;/**
* @author Kone
* @date 2022/1/29
*/@GrpcServicepublicclassUserServiceImplextendsUserServiceGrpc.UserServiceImplBase{@OverridepublicvoidgetUser(User request,StreamObserver<User> responseObserver){System.out.println(request);User user =User.newBuilder().setName("response name").build();
responseObserver.onNext(user);
responseObserver.onCompleted();}@OverridepublicvoidgetUsers(User request,StreamObserver<User> responseObserver){System.out.println("get users");System.out.println(request);User user =User.newBuilder().setName("user1").build();User user2 =User.newBuilder().setName("user2").build();
responseObserver.onNext(user);
responseObserver.onNext(user2);
responseObserver.onCompleted();}@OverridepublicStreamObserver<User>saveUsers(StreamObserver<User> responseObserver){returnnewStreamObserver<User>(){@OverridepublicvoidonNext(User user){System.out.println("get saveUsers list ---->");System.out.println(user);}@OverridepublicvoidonError(Throwable throwable){System.out.println("saveUsers error "+ throwable.getMessage());}@OverridepublicvoidonCompleted(){User user =User.newBuilder().setName("saveUsers user1").build();
responseObserver.onNext(user);
responseObserver.onCompleted();}};}}
3.5 pom参考
springboot3有点问题,暂用2.7.9版本springboot
4.0.0org.springframework.bootspring-boot-starter-parent2.7.9com.exampledemo0.0.1-SNAPSHOTdemoDemo project for Spring Boot173.23.41.26.0com.google.protobufprotobuf-java${protobuf.version}net.devhgrpc-server-spring-boot-starter2.14.0.RELEASEnet.devhgrpc-client-spring-boot-starter2.14.0.RELEASEorg.projectlomboklombok1.18.22trueorg.springframework.bootspring-boot-starter-testkr.motd.mavenos-maven-plugin1.6.2org.xolstice.maven.pluginsprotobuf-maven-plugin0.6.1com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
grpc-javaio.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
${project.basedir}/src/main/java/com/example/demo/proto${project.basedir}/src/main/javafalsecompilecompile-customorg.springframework.bootspring-boot-maven-pluginorg.projectlomboklombokorg.apache.maven.pluginsmaven-compiler-plugin1717
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto