{"id":121289,"date":"2024-04-08T12:53:57","date_gmt":"2024-04-08T09:53:57","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=121289"},"modified":"2024-04-08T12:53:59","modified_gmt":"2024-04-08T09:53:59","slug":"spring-boot-commandlinerunner-example","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html","title":{"rendered":"Spring Boot CommandLineRunner Example"},"content":{"rendered":"<p>Spring Command Runner is an interface in the Spring Framework that allows developers to execute code upon the startup of a Spring application. Let us delve into a practical example of Spring Boot CommandLineRunner usage.<\/p>\n<h2><a name=\"understanding-commandlinerunner\"><\/a>1. Understanding CommandLineRunner<\/h2>\n<p><a href=\"https:\/\/docs.spring.io\/spring-boot\/docs\/current\/api\/org\/springframework\/boot\/CommandLineRunner.html\" target=\"_blank\" rel=\"noopener\">CommandLineRunner<\/a> is an interface provided by the Spring Boot framework. It&#8217;s used to execute the code after the Spring Boot application has started up and the application context has been created. This interface has a single-run method:<\/p>\n<pre class=\"brush:java; wrap-lines:false;\">public interface CommandLineRunner {\n    void run(String... args) throws Exception;\n}\n<\/pre>\n<p>Developers can implement this interface to perform any tasks they want to execute at the startup of their Spring Boot application. These tasks could include database initialization, cache warming, or any custom logic required at application startup.<\/p>\n<p>Here&#8217;s how the CommandLinerRunner works:<\/p>\n<ul>\n<li>Implementation: Developers create a class that implements the CommandLineRunner interface provided by Spring Boot.<\/li>\n<li>Override Run Method: Within the implementing class, developers override the run method. This method will be automatically executed by Spring Boot when the application context is ready.<\/li>\n<li>Execute Custom Logic: Developers write the custom code they want to execute during application startup inside the run method. This code could include tasks like database initialization, cache warming, or any other initialization logic.<\/li>\n<li>Automatic Invocation: Spring Boot automatically detects all CommandLineRunner beans in the application context and invokes their run methods in the order of their priority. Developers can control the order of execution using the @Order annotation or by implementing the Ordered interface.<\/li>\n<\/ul>\n<h3>1.1 Implementing CommandLineRunner<\/h3>\n<p>Here&#8217;s a basic example of how to use CommandLineRunner:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<pre class=\"brush:java; wrap-lines:false;\">import org.springframework.boot.CommandLineRunner;\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class MyCommandLineRunner implements CommandLineRunner {\n\n    @Override\n    public void run(String... args) throws Exception {\n        System.out.println(\"Executing tasks after application startup...\");\n        \/\/ Perform startup tasks here\n    }\n}\n<\/pre>\n<p>In this example, MyCommandLineRunner is a Spring-managed component that implements the CommandLineRunner interface. The run method will be invoked automatically by Spring Boot once the application context is ready.<\/p>\n<p>CommandLineRunner provides a convenient way to execute code during application startup in a Spring Boot application, ensuring that specific tasks are carried out reliably and efficiently.<\/p>\n<h2><a name=\"bean-commandlinerunner-in-spring\"><\/a>2. @Bean CommandLineRunner in Spring<\/h2>\n<p>In Spring Framework, <code>@Bean<\/code> is an annotation used to declare a single bean, a method that returns a bean instance, within a Spring configuration class. <code>CommandLineRunner<\/code> is an interface provided by Spring Boot, used to execute custom code after the application context has been initialized. When you use <code>@Bean<\/code> to define a <code>CommandLineRunner<\/code> bean in your Spring configuration class, you are effectively registering a component that will be invoked by Spring Boot upon application startup.<\/p>\n<p>Here&#8217;s how it works:<\/p>\n<ul>\n<li>Define a Method: Annotate a method in your Spring configuration class with <code>@Bean<\/code> that returns a <code>CommandLineRunner<\/code> instance.<\/li>\n<li>Override Run Method: Implement the <code>run<\/code> method within the method body. This method will contain the code you want to execute after application startup.<\/li>\n<li>Automatic Invocation: Spring Boot automatically detects all <code>CommandLineRunner<\/code> beans in the application context and invokes their <code>run<\/code> methods in the order of their priority.<\/li>\n<\/ul>\n<p>Here&#8217;s a basic example of using <code>@Bean<\/code> to define a <code>CommandLineRunner<\/code>:<\/p>\n<pre class=\"brush:java; wrap-lines:false;\">import org.springframework.boot.CommandLineRunner;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n@Configuration\npublic class MyConfiguration {\n\n    @Bean\n    public CommandLineRunner myCommandLineRunner() {\n        return new CommandLineRunner() {\n            @Override\n            public void run(String... args) throws Exception {\n                System.out.println(\"Executing tasks after application startup...\");\n                \/\/ Perform startup tasks here\n            }\n        };\n    }\n}\n<\/pre>\n<p>In this example, the method <code>myCommandLineRunner<\/code> is annotated with <code>@Bean<\/code> to declare a <code>CommandLineRunner<\/code> bean. The <code>run<\/code> method within the anonymous class implementation will be invoked automatically by Spring Boot upon application startup.<\/p>\n<p><code>@Bean<\/code> CommandLineRunner provides a flexible way to define and register components that execute code during application startup in a Spring Boot application.<\/p>\n<h2><a name=\"conclusion\"><\/a>3. Conclusion<\/h2>\n<p>CommandLineRunner in Spring, whether implemented as a component, with <code>@Bean<\/code>, or by directly implementing the interface, offers a powerful mechanism for executing custom code after the initialization of a Spring Boot application. It provides developers with a straightforward way to perform tasks like database setup, cache warming, or any other initialization logic required at application startup. Whether through the automatic detection of CommandLineRunner beans or through explicit declaration using <code>@Bean<\/code>, Spring Boot ensures the reliable execution of these tasks in the order specified or inferred. By leveraging CommandLineRunner, developers can ensure that their Spring Boot applications start up smoothly and are ready to serve their purpose effectively.<\/p>\n<p>Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Command Runner is an interface in the Spring Framework that allows developers to execute code upon the startup of a Spring application. Let us delve into a practical example of Spring Boot CommandLineRunner usage. 1. Understanding CommandLineRunner CommandLineRunner is an interface provided by the Spring Boot framework. It&#8217;s used to execute the code after &hellip;<\/p>\n","protected":false},"author":26931,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[1114,854],"class_list":["post-121289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-spring-zh-hans","tag-spring-boot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring Boot CommandLineRunner Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot CommandLineRunner Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-08T09:53:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-08T09:53:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yatin Batra\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yatin Batra\" \/>\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:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html\"},\"author\":{\"name\":\"Yatin Batra\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/cda31a4c1965373fed40c8907dc09b8d\"},\"headline\":\"Spring Boot CommandLineRunner Example\",\"datePublished\":\"2024-04-08T09:53:57+00:00\",\"dateModified\":\"2024-04-08T09:53:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html\"},\"wordCount\":614,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Spring\",\"Spring Boot\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html\",\"name\":\"Spring Boot CommandLineRunner Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2024-04-08T09:53:57+00:00\",\"dateModified\":\"2024-04-08T09:53:59+00:00\",\"description\":\"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"spring-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/spring-boot-commandlinerunner-example.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Spring Boot CommandLineRunner Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/cda31a4c1965373fed40c8907dc09b8d\",\"name\":\"Yatin Batra\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Yatin.batra_.jpg\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Yatin.batra_.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Yatin.batra_.jpg\",\"caption\":\"Yatin Batra\"},\"description\":\"An experience full-stack engineer well versed with Core Java, Spring\\\/Springboot, MVC, Security, AOP, Frontend (Angular &amp; React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).\",\"sameAs\":[\"https:\\\/\\\/www.javacodegeeks.com\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/yatin-batra\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot CommandLineRunner Example - Java Code Geeks","description":"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.","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:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html","og_locale":"en_US","og_type":"article","og_title":"Spring Boot CommandLineRunner Example - Java Code Geeks","og_description":"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.","og_url":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2024-04-08T09:53:57+00:00","article_modified_time":"2024-04-08T09:53:59+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Yatin Batra","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Yatin Batra","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html"},"author":{"name":"Yatin Batra","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/cda31a4c1965373fed40c8907dc09b8d"},"headline":"Spring Boot CommandLineRunner Example","datePublished":"2024-04-08T09:53:57+00:00","dateModified":"2024-04-08T09:53:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html"},"wordCount":614,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Spring","Spring Boot"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html","url":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html","name":"Spring Boot CommandLineRunner Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2024-04-08T09:53:57+00:00","dateModified":"2024-04-08T09:53:59+00:00","description":"Spring Boot CommandLineRunner Example: Example of Spring Boot CommandLineRunner for efficient application startup.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","width":150,"height":150,"caption":"spring-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/spring-boot-commandlinerunner-example.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Spring Boot CommandLineRunner Example"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/cda31a4c1965373fed40c8907dc09b8d","name":"Yatin Batra","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/Yatin.batra_.jpg","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/Yatin.batra_.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/Yatin.batra_.jpg","caption":"Yatin Batra"},"description":"An experience full-stack engineer well versed with Core Java, Spring\/Springboot, MVC, Security, AOP, Frontend (Angular &amp; React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).","sameAs":["https:\/\/www.javacodegeeks.com"],"url":"https:\/\/www.javacodegeeks.com\/author\/yatin-batra"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/121289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/26931"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=121289"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/121289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=121289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=121289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=121289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}