{"id":23330,"date":"2024-09-15T14:23:55","date_gmt":"2024-09-15T07:23:55","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=23330"},"modified":"2025-10-09T09:36:28","modified_gmt":"2025-10-09T02:36:28","slug":"grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html","title":{"rendered":"gRPC server with Spring Boot using grpc-server-spring-boot-starter"},"content":{"rendered":"<p>There is currently no official starter supporting gRPC in Spring Boot, but you can also use the starters developed by the community in the GitHub repository <a href=\"https:\/\/github.com\/grpc-ecosystem\/grpc-spring\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/grpc-ecosystem\/grpc-spring<\/a>. In this tutorial, I will guide you on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter in this GitHub repository!<\/p>\n<p>First, I will create a new Spring Boot project as an example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23332 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter-1.png\" alt=\"\" width=\"700\" height=\"738\" \/><\/p>\n<p>We will declare the grpc-server-spring-boot-starter as follows:<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;dependency&gt;\r\n  &lt;groupId&gt;net.devh&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;grpc-server-spring-boot-starter&lt;\/artifactId&gt;\r\n  &lt;version&gt;3.1.0.RELEASE&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n\r\n&lt;dependency&gt;\r\n  &lt;groupId&gt;javax.annotation&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;javax.annotation-api&lt;\/artifactId&gt;\r\n  &lt;version&gt;1.3.2&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p>Here, I will use <a href=\"https:\/\/huongdanjava.com\/generate-java-code-for-service-contract-in-grpc-using-protocol-buffers-maven-plugin.html\" target=\"_blank\" rel=\"noopener\">Protocol Buffers Maven Plugin<\/a> to generate Java code for the gRPC service contract, so as you can see, I also declared the javax.annotation-api dependency to avoid compilation errors after generating source code.<\/p>\n<p>The .proto file in the src\/main\/proto folder defines the service contract, I will define it simply as follows:<\/p>\n<pre class=\"lang:java decode:true\">syntax = \"proto3\";\r\n\r\noption java_multiple_files = true;\r\n\r\npackage com.huongdanjava.springboot.grpc;\r\n\r\nmessage HelloRequest {\r\n  string name = 1;\r\n}\r\n\r\nmessage HelloResponse {\r\n  string message = 1;\r\n}\r\n\r\nservice HelloService {\r\n  rpc hello(HelloRequest) returns (HelloResponse);\r\n}<\/pre>\n<p>Protocol Buffers Maven Plugin I declare as follows:<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;build&gt;\r\n  &lt;extensions&gt;\r\n    &lt;extension&gt;\r\n      &lt;groupId&gt;kr.motd.maven&lt;\/groupId&gt;\r\n      &lt;artifactId&gt;os-maven-plugin&lt;\/artifactId&gt;\r\n      &lt;version&gt;1.7.1&lt;\/version&gt;\r\n    &lt;\/extension&gt;\r\n  &lt;\/extensions&gt;\r\n  &lt;plugins&gt;\r\n    &lt;plugin&gt;\r\n      &lt;groupId&gt;org.xolstice.maven.plugins&lt;\/groupId&gt;\r\n      &lt;artifactId&gt;protobuf-maven-plugin&lt;\/artifactId&gt;\r\n      &lt;version&gt;0.6.1&lt;\/version&gt;\r\n      &lt;configuration&gt;\r\n        &lt;protocArtifact&gt;com.google.protobuf:protoc:3.25.4:exe:${os.detected.classifier}&lt;\/protocArtifact&gt;\r\n        &lt;pluginId&gt;grpc-java&lt;\/pluginId&gt;\r\n        &lt;pluginArtifact&gt;io.grpc:protoc-gen-grpc-java:1.66.0:exe:${os.detected.classifier}&lt;\/pluginArtifact&gt;\r\n      &lt;\/configuration&gt;\r\n      &lt;executions&gt;\r\n        &lt;execution&gt;\r\n          &lt;goals&gt;\r\n            &lt;goal&gt;compile&lt;\/goal&gt;\r\n            &lt;goal&gt;compile-custom&lt;\/goal&gt;\r\n          &lt;\/goals&gt;\r\n        &lt;\/execution&gt;\r\n      &lt;\/executions&gt;\r\n    &lt;\/plugin&gt;\r\n  &lt;\/plugins&gt;\r\n&lt;\/build&gt;<\/pre>\n<p>You can read more in the tutorial <a href=\"https:\/\/huongdanjava.com\/generate-java-code-for-service-contract-in-grpc-using-protocol-buffers-maven-plugin.html\" target=\"_blank\" rel=\"noopener\">Generate Java code for service contract in gRPC using Protocol Buffers Maven Plugin<\/a> to understand how to use Protocol Buffers Maven Plugin to generate Java code for service contract!<\/p>\n<p>Run Maven Compile, you will see the following result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23333 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter-2.png\" alt=\"\" width=\"700\" height=\"838\" \/><\/p>\n<p>To implement HelloService with grpc-server-spring-boot-starter, you just need to add a new class that extends the HelloServiceGrpc.HelloServiceImplBase class and annotate this class with the annotation @GrpcService as follows:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.springboot.grpc;\r\n\r\nimport io.grpc.stub.StreamObserver;\r\nimport net.devh.boot.grpc.server.service.GrpcService;\r\n\r\n@GrpcService\r\npublic class HelloController extends HelloServiceGrpc.HelloServiceImplBase {\r\n\r\n  @Override\r\n  public void hello(HelloRequest request, StreamObserver&lt;HelloResponse&gt; responseObserver) {\r\n    String greeting = \"Hello \" + request.getName() + \" from Huong Dan Java\";\r\n\r\n    HelloResponse response = HelloResponse.newBuilder()\r\n        .setMessage(greeting)\r\n        .build();\r\n\r\n    responseObserver.onNext(response);\r\n    responseObserver.onCompleted();\r\n  }\r\n}\r\n<\/pre>\n<p>The implementation content of the hello() method is similar to <a href=\"https:\/\/huongdanjava.com\/introduction-to-grpc.html\" target=\"_blank\" rel=\"noopener\">the previous tutorial<\/a>!<\/p>\n<p>grpc-server-spring-boot-starter with Spring Boot&#8217;s auto-configuration mechanism will automatically start a gRPC server with default configurations, adding the implementation of HelloService to expose it to the outside.<\/p>\n<p>By default, grpc-server-spring-boot-starter will run the gRPC server at port 9090, you can change this default port by declaring the grpc.server.port property with the value you want! In this example, I will leave the default port.<\/p>\n<p>If I now run this example application and use Postman to request the <em>hello<\/em> operation, I will see the following result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23334 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter-3.png\" alt=\"\" width=\"700\" height=\"375\" \/><\/p>\n<p>Very quick and simple, right?<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;23330&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;gRPC server with Spring Boot using grpc-server-spring-boot-starter&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>There is currently no official starter supporting gRPC in Spring Boot, but you can also use the starters developed by the community in the GitHub repository https:\/\/github.com\/grpc-ecosystem\/grpc-spring. In this tutorial, I will guide you on how to build a gRPC server with Spring Boot using&hellip; <a href=\"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":1680,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2409,582],"tags":[],"class_list":["post-23330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grpc-en","category-spring-boot","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-15T07:23:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T02:36:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"gRPC server with Spring Boot using grpc-server-spring-boot-starter\",\"datePublished\":\"2024-09-15T07:23:55+00:00\",\"dateModified\":\"2025-10-09T02:36:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\"},\"wordCount\":321,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"articleSection\":[\"gRPC\",\"Spring Boot\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\",\"name\":\"gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"datePublished\":\"2024-09-15T07:23:55+00:00\",\"dateModified\":\"2025-10-09T02:36:28+00:00\",\"description\":\"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"gRPC server with Spring Boot using grpc-server-spring-boot-starter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java","description":"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html","og_locale":"en_US","og_type":"article","og_title":"gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java","og_description":"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.","og_url":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2024-09-15T07:23:55+00:00","article_modified_time":"2025-10-09T02:36:28+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","type":"image\/png"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"gRPC server with Spring Boot using grpc-server-spring-boot-starter","datePublished":"2024-09-15T07:23:55+00:00","dateModified":"2025-10-09T02:36:28+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html"},"wordCount":321,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","articleSection":["gRPC","Spring Boot"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html","url":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html","name":"gRPC server with Spring Boot using grpc-server-spring-boot-starter - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","datePublished":"2024-09-15T07:23:55+00:00","dateModified":"2025-10-09T02:36:28+00:00","description":"In this tutorial, I guide you all on how to build a gRPC server with Spring Boot using grpc-server-spring-boot-starter.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/grpc-server-with-spring-boot-using-grpc-server-spring-boot-starter.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"gRPC server with Spring Boot using grpc-server-spring-boot-starter"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=23330"}],"version-history":[{"count":3,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23330\/revisions"}],"predecessor-version":[{"id":23336,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23330\/revisions\/23336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/1680"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=23330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=23330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=23330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}