Move GrpcServlet to autoconfiguration

Signed-off-by: Dave Syer <dsyer@vmware.com>
This commit is contained in:
Dave Syer
2024-10-23 10:58:14 +01:00
committed by Dave Syer
parent 1997593755
commit c358f6ef4d
7 changed files with 99 additions and 31 deletions

View File

@@ -1,35 +1,19 @@
package org.springframework.grpc.sample;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.grpc.autoconfigure.server.GrpcServerAutoConfiguration;
import io.grpc.BindableService;
import io.grpc.protobuf.services.ProtoReflectionService;
import io.grpc.servlet.jakarta.GrpcServlet;
@SpringBootApplication(exclude = GrpcServerAutoConfiguration.class)
@SpringBootApplication
public class GrpcServerApplication {
public static void main(String[] args) {
SpringApplication.run(GrpcServerApplication.class, args);
}
@Bean
public ServletRegistrationBean<GrpcServlet> grpcServlet(List<BindableService> services) {
List<String> paths = services.stream()
.map(service -> "/" + service.bindService().getServiceDescriptor().getName() + "/*")
.collect(Collectors.toList());
ServletRegistrationBean<GrpcServlet> servlet = new ServletRegistrationBean<>(new GrpcServlet(services));
servlet.setUrlMappings(paths);
return servlet;
}
@Bean
public BindableService serverReflection() {
return ProtoReflectionService.newInstance();

View File

@@ -24,7 +24,7 @@ public class GrpcServerApplicationTests {
private static Log log = LogFactory.getLog(GrpcServerApplicationTests.class);
public static void main(String[] args) {
new SpringApplicationBuilder(GrpcServerApplication.class, ExtraConfiguration.class).profiles("ssl").run(args);
new SpringApplicationBuilder(GrpcServerApplication.class, ExtraConfiguration.class).run(args);
}
@Autowired