Spring Boot

Developing your first Spring Boot application Hello World

<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<div style&equals;"text-align&colon; justify&semi;">&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Hello friends&excl;&excl;&excl; Let’s develop a simple &OpenCurlyDoubleQuote;<b>Hello World&excl;<&sol;b>” web application in Java that highlights some of Spring Boot’s key features&period; We’ll use Maven to build this project since most IDEs support it&period;<&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">We are using intializr to quick create project so we can choose either via one of following Initializr interfaces to create web application project structure to initiate&period;<&sol;div>&NewLine;<ul style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">&NewLine;<li>Use Web Interface &lpar;<b><i><a href&equals;"http&colon;&sol;&sol;start&period;spring&period;io&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">http&colon;&sol;&sol;start&period;spring&period;io<&sol;a><&sol;i><&sol;b>&rpar;<&sol;li>&NewLine;<li>Use STS IDE<&sol;li>&NewLine;<li>Use Spring Boot CLI<&sol;li>&NewLine;<&sol;ul>&NewLine;<h2 style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Spring Boot application Hello World<&sol;h2>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Here we are going to use web interface to create project structure for &OpenCurlyDoubleQuote;Hello World” web application&period; As below figure I have created<&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2016&sol;07&sol;Spring-boot-hello-world&period;jpg" width&equals;"640" height&equals;"469" border&equals;"0" &sol;><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Once the project has been created&comma; you should have a project structure similar to that shown in figure below&period;<&sol;div>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2016&sol;07&sol;Spring-boot-hello-world-2&period;jpg" border&equals;"0" &sol;><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<h2 style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><b>Examining a newly initialized Spring Boot project<&sol;b><&sol;h2>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Now let’s slow down and take a closer look at what’s contained in the initial project&period; First thing to noticed in the project structure follow the layout of Maven or Gradle project That is&comma; the main application code is placed in the src&sol;main&sol;java branch of the directory tree&comma; resources are placed in the src&sol;main&sol; resources branch&comma; and test code is placed in the src&sol;test&sol;java branch At this point we don’t have any test resources&comma; but if we did we’d put them in src&sol;test&sol;resources&period;<&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">Let see auto generated files in deeper&colon;<&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;"><b>Pom&period;xml&colon; The Maven build specification<&sol;b><&sol;div>&NewLine;<div style&equals;"font-family&colon; calibri&comma; sans-serif&semi; font-size&colon; 12pt&semi;">This is the recipe that will be used to build your project&period;<&sol;div>&NewLine;<pre class&equals;"highlight" style&equals;"font-size&colon; 12pt&semi;">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;project xmlns&equals;"http&colon;&sol;&sol;maven&period;apache&period;org&sol;POM&sol;4&period;0&period;0" xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" &NewLine; xsi&colon;schemaLocation&equals;"http&colon;&sol;&sol;maven&period;apache&period;org&sol;POM&sol;4&period;0&period;0 http&colon;&sol;&sol;maven&period;apache&period;org&sol;xsd&sol;maven-4&period;0&period;0&period;xsd"&gt&semi; &NewLine; &lt&semi;modelVersion&gt&semi;4&period;0&period;0&lt&semi;&sol;modelVersion&gt&semi; &NewLine; &NewLine; &lt&semi;groupId&gt&semi;com&period;dineshonjava&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;SpringBootHelloWorld&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;version&gt&semi;0&period;0&period;1-SNAPSHOT&lt&semi;&sol;version&gt&semi; &NewLine; &lt&semi;packaging&gt&semi;jar&lt&semi;&sol;packaging&gt&semi; &NewLine; &NewLine; &lt&semi;name&gt&semi;SpringBootHelloWorld&lt&semi;&sol;name&gt&semi; &NewLine; &lt&semi;description&gt&semi;SpringBootHelloWorld project for Spring Boot&lt&semi;&sol;description&gt&semi; &NewLine; &NewLine; &lt&semi;parent&gt&semi; &NewLine; &lt&semi;groupId&gt&semi;org&period;springframework&period;boot&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;spring-boot-starter-parent&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;version&gt&semi;1&period;4&period;0&period;RC1&lt&semi;&sol;version&gt&semi; &NewLine; &lt&semi;relativePath&sol;&gt&semi; &lt&semi;&excl;-- lookup parent from repository --&gt&semi; &NewLine; &lt&semi;&sol;parent&gt&semi; &NewLine; &NewLine; &lt&semi;properties&gt&semi; &NewLine; &lt&semi;project&period;build&period;sourceEncoding&gt&semi;UTF-8&lt&semi;&sol;project&period;build&period;sourceEncoding&gt&semi; &NewLine; &lt&semi;java&period;version&gt&semi;1&period;8&lt&semi;&sol;java&period;version&gt&semi; &NewLine; &lt&semi;&sol;properties&gt&semi; &NewLine; &NewLine; &lt&semi;dependencies&gt&semi; &NewLine; &lt&semi;dependency&gt&semi; &NewLine; &lt&semi;groupId&gt&semi;org&period;springframework&period;boot&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;spring-boot-starter-web&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;&sol;dependency&gt&semi; &NewLine; &NewLine; &lt&semi;dependency&gt&semi; &NewLine; &lt&semi;groupId&gt&semi;org&period;springframework&period;boot&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;spring-boot-starter-test&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;scope&gt&semi;test&lt&semi;&sol;scope&gt&semi; &NewLine; &lt&semi;&sol;dependency&gt&semi; &NewLine; &lt&semi;&sol;dependencies&gt&semi; &NewLine; &NewLine; &lt&semi;build&gt&semi; &NewLine; &lt&semi;plugins&gt&semi; &NewLine; &lt&semi;plugin&gt&semi; &NewLine; &lt&semi;groupId&gt&semi;org&period;springframework&period;boot&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;spring-boot-maven-plugin&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;&sol;plugin&gt&semi; &NewLine; &lt&semi;&sol;plugins&gt&semi; &NewLine; &lt&semi;&sol;build&gt&semi; &NewLine; &NewLine; &lt&semi;repositories&gt&semi; &NewLine; &lt&semi;repository&gt&semi; &NewLine; &lt&semi;id&gt&semi;spring-snapshots&lt&semi;&sol;id&gt&semi; &NewLine; &lt&semi;name&gt&semi;Spring Snapshots&lt&semi;&sol;name&gt&semi; &NewLine; &lt&semi;url&gt&semi;https&colon;&sol;&sol;repo&period;spring&period;io&sol;snapshot&lt&semi;&sol;url&gt&semi; &NewLine; &lt&semi;snapshots&gt&semi; &NewLine; &lt&semi;enabled&gt&semi;true&lt&semi;&sol;enabled&gt&semi; &NewLine; &lt&semi;&sol;snapshots&gt&semi; &NewLine; &lt&semi;&sol;repository&gt&semi; &NewLine; &lt&semi;repository&gt&semi; &NewLine; &lt&semi;id&gt&semi;spring-milestones&lt&semi;&sol;id&gt&semi; &NewLine; &lt&semi;name&gt&semi;Spring Milestones&lt&semi;&sol;name&gt&semi; &NewLine; &lt&semi;url&gt&semi;https&colon;&sol;&sol;repo&period;spring&period;io&sol;milestone&lt&semi;&sol;url&gt&semi; &NewLine; &lt&semi;snapshots&gt&semi; &NewLine; &lt&semi;enabled&gt&semi;false&lt&semi;&sol;enabled&gt&semi; &NewLine; &lt&semi;&sol;snapshots&gt&semi; &NewLine; &lt&semi;&sol;repository&gt&semi; &NewLine; &lt&semi;&sol;repositories&gt&semi; &NewLine; &lt&semi;pluginRepositories&gt&semi; &NewLine; &lt&semi;pluginRepository&gt&semi; &NewLine; &lt&semi;id&gt&semi;spring-snapshots&lt&semi;&sol;id&gt&semi; &NewLine; &lt&semi;name&gt&semi;Spring Snapshots&lt&semi;&sol;name&gt&semi; &NewLine; &lt&semi;url&gt&semi;https&colon;&sol;&sol;repo&period;spring&period;io&sol;snapshot&lt&semi;&sol;url&gt&semi; &NewLine; &lt&semi;snapshots&gt&semi; &NewLine; &lt&semi;enabled&gt&semi;true&lt&semi;&sol;enabled&gt&semi; &NewLine; &lt&semi;&sol;snapshots&gt&semi; &NewLine; &lt&semi;&sol;pluginRepository&gt&semi; &NewLine; &lt&semi;pluginRepository&gt&semi; &NewLine; &lt&semi;id&gt&semi;spring-milestones&lt&semi;&sol;id&gt&semi; &NewLine; &lt&semi;name&gt&semi;Spring Milestones&lt&semi;&sol;name&gt&semi; &NewLine; &lt&semi;url&gt&semi;https&colon;&sol;&sol;repo&period;spring&period;io&sol;milestone&lt&semi;&sol;url&gt&semi; &NewLine; &lt&semi;snapshots&gt&semi; &NewLine; &lt&semi;enabled&gt&semi;false&lt&semi;&sol;enabled&gt&semi; &NewLine; &lt&semi;&sol;snapshots&gt&semi; &NewLine; &lt&semi;&sol;pluginRepository&gt&semi; &NewLine; &lt&semi;&sol;pluginRepositories&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;project&gt&semi; &NewLine;<&sol;pre>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Spring Boot provides a number of &OpenCurlyDoubleQuote;<b>Starters<&sol;b>” that make easy to add jars to your classpath&period; Our sample application has already used spring-boot-starter-parent in the parent section of the POM&period; The spring-boot-starter-parent is a special starter that provides useful Maven defaults&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b>SpringBootHelloWorldApplication&period;java<&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">The application’s bootstrap class and primary Spring configuration class<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<pre class&equals;"highlight" style&equals;"font-size&colon; 12pt&semi;">package com&period;dineshonjava&semi; &NewLine; &NewLine;import org&period;springframework&period;boot&period;SpringApplication&semi; &NewLine;import org&period;springframework&period;boot&period;autoconfigure&period;SpringBootApplication&semi; &NewLine;import org&period;springframework&period;web&period;bind&period;annotation&period;RequestMapping&semi; &NewLine;import org&period;springframework&period;web&period;bind&period;annotation&period;RestController&semi; &NewLine; &NewLine;&commat;RestController &NewLine;&commat;SpringBootApplication &NewLine;public class SpringBootHelloWorldApplication &lbrace; &NewLine; &NewLine; &commat;RequestMapping&lpar;"&sol;"&rpar; &NewLine; String home&lpar;&rpar; &lbrace; &NewLine; return "Hello World&excl;"&semi; &NewLine; &rcub; &NewLine; &NewLine; public static void main&lpar;String&lbrack;&rsqb; args&rpar; &lbrace; &NewLine; SpringApplication&period;run&lpar;SpringBootHelloWorldApplication&period;class&comma; args&rpar;&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine; &NewLine;<&sol;pre>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<h2 style&equals;"font-size&colon; 12pt&semi;"><b>The &commat;RestController and &commat;RequestMapping annotations<&sol;b><&sol;h2>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b>&commat;RestController<&sol;b> is known as a stereotype annotation&period; The <b>&commat;RequestMapping<&sol;b> annotation provides &OpenCurlyDoubleQuote;routing” information&period; It is telling Spring that any HTTP request with the path &OpenCurlyDoubleQuote;&sol;” should be mapped to the home method&period; The &commat;RestController annotation tells Spring to render the resulting string directly back to the caller&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<h2 style&equals;"font-size&colon; 12pt&semi;"><b>The &commat;SpringBootApplication annotation<&sol;b><&sol;h2>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">The <b>&commat;SpringBootApplication<&sol;b> enables Spring component-scanning and Spring Boot auto-configuration&period; In fact&comma; &commat;SpringBootApplication combines three other useful annotations&colon;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<ul style&equals;"font-size&colon; 12pt&semi;">&NewLine;<li><b>Spring’s &commat;Configuration<&sol;b>—Designates a class as a configuration class using Spring’s Java-based configuration&period; Although we won’t be writing a lot of configuration in this tutorial&comma; we’ll favor Java-based configuration over XML configuration when we do&period;<&sol;li>&NewLine;<li><b>Spring’s &commat;ComponentScan<&sol;b>—Enables component-scanning so that the web controller classes and other components you write will be automatically discovered and registered as beans in the Spring application context&period; Here we’ll write a simple Spring MVC controller that will be annotated with &commat;RestController so that component-scanning can find it&period;<&sol;li>&NewLine;<li><b>Spring Boot’s &commat;EnableAutoConfiguration<&sol;b>— This annotation tells Spring Boot to &OpenCurlyDoubleQuote;guess” how you will want to configure Spring&comma; based on the jar dependencies that you have added&period; Since spring-boot-starter-web added Tomcat and Spring MVC&comma; the auto-configuration will assume that you are developing a web application and setup Spring accordingly&period;<&sol;li>&NewLine;<&sol;ul>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b style&equals;"font-size&colon; 12pt&semi;">application&period;properties<&sol;b>—A place to configure application and Spring Boot properties&period; The application&period;properties file given to you by the Initializr is initially empty&period; In fact&comma; this file is completely optional&comma; so you could remove it completely without impacting the application&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Suppose we are adding following line to this property file<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b><i>server&period;port&equals;1208<&sol;i><&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">With this line&comma; you’re configuring the embedded Tomcat server to listen on port <b>1208<&sol;b> instead of the default port <b>8080<&sol;b>&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">SpringBootHelloWorldApplicationTests&period;java—A basic integration test class<&sol;div>&NewLine;<pre class&equals;"highlight" style&equals;"font-size&colon; 12pt&semi;">package com&period;dineshonjava&semi; &NewLine; &NewLine;import org&period;junit&period;Test&semi; &NewLine;import org&period;junit&period;runner&period;RunWith&semi; &NewLine;import org&period;springframework&period;boot&period;test&period;context&period;SpringBootTest&semi; &NewLine;import org&period;springframework&period;test&period;context&period;junit4&period;SpringRunner&semi; &NewLine; &NewLine;&commat;RunWith&lpar;SpringRunner&period;class&rpar; &NewLine;&commat;SpringBootTest &NewLine;public class SpringBootHelloWorldApplicationTests &lbrace; &NewLine; &NewLine; &commat;Test &NewLine; public void contextLoads&lpar;&rpar; &lbrace; &NewLine; &rcub; &NewLine; &NewLine;&rcub; &NewLine; &NewLine;<&sol;pre>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">In a typical Spring integration test&comma; you’d annotate the test class with &commat;Context- Configuration to specify how the test should load the Spring application context&period; But in order to take full advantage of Spring Boot magic&comma; the &commat;SpringApplication- Configuration annotation should be used instead&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b>The &OpenCurlyDoubleQuote;main” method&colon;<&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">The final part of our application is the main method&period; This is just a standard method that follows the Java convention for an application entry point&period; Our main method delegates to Spring Boot’s SpringApplication class by calling run&period; SpringApplication will bootstrap our application&comma; starting Spring which will in turn start the auto-configured Tomcat web server&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b>Running the example<&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Type mvn spring-boot&colon;run from the root project directory to start the application&colon;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">&period;   &lowbar;&lowbar;&lowbar;&lowbar;          &lowbar;            &lowbar;&lowbar; &lowbar; &lowbar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;"> &sol; &sol; &lowbar;&lowbar;&lowbar;&&num;8217&semi;&lowbar; &lowbar;&lowbar; &lowbar; &lowbar;&lpar;&lowbar;&rpar;&lowbar; &lowbar;&lowbar;  &lowbar;&lowbar; &lowbar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">&lpar; &lpar; &rpar;&lowbar;&lowbar;&lowbar; &vert; &&num;8216&semi;&lowbar; &vert; &&num;8216&semi;&lowbar;&vert; &vert; &&num;8216&semi;&lowbar; &sol; &lowbar;&grave; &vert;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;"> &sol;  &lowbar;&lowbar;&lowbar;&rpar;&vert; &vert;&lowbar;&rpar;&vert; &vert; &vert; &vert; &vert; &vert;&vert; &lpar;&lowbar;&vert; &vert;  &rpar; &rpar; &rpar; &rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">  &&num;8216&semi;  &vert;&lowbar;&lowbar;&lowbar;&lowbar;&vert; &period;&lowbar;&lowbar;&vert;&lowbar;&vert; &vert;&lowbar;&vert;&lowbar;&vert; &vert;&lowbar;&lowbar;&lowbar;&comma; &vert; &sol; &sol; &sol; &sol;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;"> &equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&vert;&lowbar;&vert;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&vert;&lowbar;&lowbar;&lowbar;&sol;&equals;&sol;&lowbar;&sol;&lowbar;&sol;&lowbar;&sol;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;"> &colon;&colon; Spring Boot &colon;&colon;            &lpar;v1&period;4&period;0&period;RC1&rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;"><&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;35&period;959  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; c&period;d&period;SpringBootHelloWorldApplication      &colon; Starting SpringBootHelloWorldApplication on NODTBSL206AG with PID 12868 &lpar;started by Dinesh&period;Rajput in D&colon;personal dataspring-boot-workspaceSpringBootHelloWorld&rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;35&period;961  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; c&period;d&period;SpringBootHelloWorldApplication      &colon; No active profile set&comma; falling back to default profiles&colon; default<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;36&period;096  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; ationConfigEmbeddedWebApplicationContext &colon; Refreshing org&period;springframework&period;boot&period;context&period;embedded&period;AnnotationConfigEmbeddedWebApplicationContext&commat;1809907&colon; startup date &lbrack;Thu Jul 14 08&colon;54&colon;36 IST 2016&rsqb;&semi; root of context hierarchy<&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<div class&equals;"MsoNormal" style&equals;"margin-bottom&colon; 0in&semi; tab-stops&colon; 246&period;0pt&semi;">2016-07-14 08&colon;54&colon;39&period;630  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; s&period;b&period;c&period;e&period;t&period;TomcatEmbeddedServletContainer &colon; Tomcat initialized with port&lpar;s&rpar;&colon; 8080 &lpar;http&rpar;<b><&sol;b><&sol;div>&NewLine;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">If you open a web browser to<b> <a href&equals;"http&colon;&sol;&sol;localhost&colon;8080&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">localhost&colon;8080<&sol;a><&sol;b> you should see the following output&colon;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; font-size&colon; 12pt&semi; text-align&colon; center&semi;"><img src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2016&sol;07&sol;Spring-Boot-Hello-3&period;jpg" border&equals;"0" &sol;><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<h2 style&equals;"font-size&colon; 12pt&semi;"><b>Creating an executable jar<&sol;b><&sol;h2>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Let’s finish our example by creating a completely self-contained executable jar file that we could ruSn in production&period; Executable jars &lpar;sometimes called &OpenCurlyDoubleQuote;fat jars”&rpar; are archives containing your compiled classes along with all of the jar dependencies that your code needs to run&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">To create an executable jar we need to add the spring-boot-maven-plugin to our pom&period;xml&period; Insert the following lines just below the dependencies section&colon;<&sol;div>&NewLine;<pre class&equals;"highlight" style&equals;"font-size&colon; 12pt&semi;">&lt&semi;build&gt&semi; &NewLine; &lt&semi;plugins&gt&semi; &NewLine; &lt&semi;plugin&gt&semi; &NewLine; &lt&semi;groupId&gt&semi;org&period;springframework&period;boot&lt&semi;&sol;groupId&gt&semi; &NewLine; &lt&semi;artifactId&gt&semi;spring-boot-maven-plugin&lt&semi;&sol;artifactId&gt&semi; &NewLine; &lt&semi;&sol;plugin&gt&semi; &NewLine; &lt&semi;&sol;plugins&gt&semi; &NewLine;&lt&semi;&sol;build&gt&semi; &NewLine; &NewLine;<&sol;pre>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Save your<b> pom&period;xml<&sol;b> and run <b><i>mvn package<&sol;i><&sol;b> from the command line&colon;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">D&colon;personal dataspring-boot-workspaceSpringBootHelloWorld&gt&semi;mvn package<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Scanning for projects&&num;8230&semi;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; &&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Building SpringBootHelloWorld 0&period;0&period;1-SNAPSHOT<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; &&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;&&num;8212&semi;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; &&num;8212&semi; maven-resources-plugin&colon;2&period;6&colon;resources &lpar;default-resources&rpar; &commat; SpringBoot<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">HelloWorld &&num;8212&semi;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Using &&num;8216&semi;UTF-8&&num;8217&semi; encoding to copy filtered resources&period;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Copying 1 resource<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Copying 0 resource<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; &&num;8212&semi; maven-compiler-plugin&colon;3&period;5&period;1&colon;compile &lpar;default-compile&rpar; &commat; SpringBootHel<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">loWorld &&num;8212&semi;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lbrack;INFO&rsqb; Nothing to compile &&num;8211&semi; all classes are up to date<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">If you look in the target directory you should see <b><i>SpringBootHelloWorld -0&period;0&period;1-SNAPSHOT&period;jar&period;<&sol;i><&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">To run that application&comma; use the java -jar command&colon;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><b><i>&dollar; java -jar target&sol; SpringBootHelloWorld -0&period;0&period;1-SNAPSHOT&period;jar<&sol;i><&sol;b><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&sol; &sol; &lowbar;&lowbar;&lowbar;&&num;8217&semi;&lowbar; &lowbar;&lowbar; &lowbar; &lowbar;&lpar;&lowbar;&rpar;&lowbar; &lowbar;&lowbar;  &lowbar;&lowbar; &lowbar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">&lpar; &lpar; &rpar;&lowbar;&lowbar;&lowbar; &vert; &&num;8216&semi;&lowbar; &vert; &&num;8216&semi;&lowbar;&vert; &vert; &&num;8216&semi;&lowbar; &sol; &lowbar;&grave; &vert;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;"> &sol;  &lowbar;&lowbar;&lowbar;&rpar;&vert; &vert;&lowbar;&rpar;&vert; &vert; &vert; &vert; &vert; &vert;&vert; &lpar;&lowbar;&vert; &vert;  &rpar; &rpar; &rpar; &rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">  &&num;8216&semi;  &vert;&lowbar;&lowbar;&lowbar;&lowbar;&vert; &period;&lowbar;&lowbar;&vert;&lowbar;&vert; &vert;&lowbar;&vert;&lowbar;&vert; &vert;&lowbar;&lowbar;&lowbar;&comma; &vert; &sol; &sol; &sol; &sol;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;"> &equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&vert;&lowbar;&vert;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&equals;&vert;&lowbar;&lowbar;&lowbar;&sol;&equals;&sol;&lowbar;&sol;&lowbar;&sol;&lowbar;&sol;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;"> &colon;&colon; Spring Boot &colon;&colon;            &lpar;v1&period;4&period;0&period;RC1&rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;"><&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;35&period;959  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; c&period;d&period;SpringBootHelloWorldApplication      &colon; Starting SpringBootHelloWorldApplication on NODTBSL206AG with PID 12868 &lpar;started by Dinesh&period;Rajput in D&colon;personal dataspring-boot-workspaceSpringBootHelloWorld&rpar;<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;35&period;961  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; c&period;d&period;SpringBootHelloWorldApplication      &colon; No active profile set&comma; falling back to default profiles&colon; default<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0&period;0001pt&semi;">2016-07-14 08&colon;54&colon;36&period;096  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; ationConfigEmbeddedWebApplicationContext &colon; Refreshing org&period;springframework&period;boot&period;context&period;embedded&period;AnnotationConfigEmbeddedWebApplicationContext&commat;1809907&colon; startup date &lbrack;Thu Jul 14 08&colon;54&colon;36 IST 2016&rsqb;&semi; root of context hierarchy<&sol;div>&NewLine;<div class&equals;"MsoNormal" style&equals;"font-size&colon; 12pt&semi; margin-bottom&colon; 0in&semi;">2016-07-14 08&colon;54&colon;39&period;630  INFO 12868 &&num;8212&semi; &lbrack;           main&rsqb; s&period;b&period;c&period;e&period;t&period;TomcatEmbeddedServletContainer &colon; Tomcat initialized with port&lpar;s&rpar;&colon; 8080 &lpar;http&rpar;<b><&sol;b><&sol;div>&NewLine;<h2 style&equals;"font-size&colon; 12pt&semi;"> <b>Summary<&sol;b><&sol;h2>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">By taking advantage of Spring Boot starter dependencies and auto-configuration&comma; you can more quickly and easily develop Spring applications&period; Starter dependencies help you focus on the type of functionality your application needs rather than on the specific libraries and versions that provide that functionality&period; Meanwhile&comma; auto-configuration frees you from the boilerplate configuration that is common among Spring applications without Spring Boot&period;<&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;"><&sol;div>&NewLine;<div style&equals;"font-size&colon; 12pt&semi;">Happy Spring Boot Learning&excl;&excl;&excl; &colon;-&rpar;<&sol;div>&NewLine;<div style&equals;"background-color&colon; &num;f2f9fc&semi; border-radius&colon; 3px&semi; border&colon; 1px solid &num;c9e6f2&semi; line-height&colon; 1&period;45&semi; padding&colon; 16px&semi;">&NewLine;<p><b>Spring Boot Related Topics<&sol;b><&sol;p>&NewLine;<ol style&equals;"text-align&colon; left&semi;">&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;introduction-to-spring-boot-a-spring-boot-complete-guide&sol;">Introduction to Spring Boo<&sol;a>t<&sol;b><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;essentials-key-components-and-internals-of-spring-boot-framework&sol;"><b>Essentials and Key Components of Spring Boot<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-cli-installation-and-hello-world-example&sol;"><b>Spring Boot CLI Installation and Hello World Example<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-initilizr-web-interface-and-examples&sol;"><b>Spring Boot Initializr Web Interface<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-initilizr-with-ides-via-spring-tool-suite&sol;"><b>Spring Boot Initializr With IDEs<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-initializr-with-spring-boot-cli&sol;"><b>Spring Boot Initializr With Spring Boot CLI<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;installing-spring-boot&sol;"><b>Installing Spring Boot<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;developing-your-first-spring-boot-application-hello-world&sol;"><b>Developing your first Spring Boot application<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;customizing-spring-boot-auto-configuration&sol;"><b>External Configurations for Spring Boot Applications<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;logging-configuration-in-spring-boot&sol;"><b>Logging Configuration in Spring Boot<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-with-spring-mvc-application&sol;"><b>Spring Boot and Spring MVC<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;working-with-sql-databases-in-spring-boot-application&sol;"><b>Working with SQL Databases and Spring Boot<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;mysql-configuration-with-spring-boot&sol;"><b>MySQL Configurations<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-data-jpa-using-in-spring-boot-application&sol;"><b>Spring Data JPA using Spring Boot Application<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-with-nosql-technologies&sol;"><b>Spring Boot with NoSQL technologies<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-cache-tutorial&sol;"><b>Spring Cache Tutorial<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-security-tutorial-using-spring-boot&sol;"><b>Spring Security Tutorial with Spring Boot<&sol;b><&sol;a><&sol;li>&NewLine;<li><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-and-mongodb-in-rest-application&sol;"><b>Spring Boot and MongoDB in REST Application<&sol;b><&sol;a><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-boot-actuator-complete-guide&sol;">Complete Guide for Spring Boot Actuator<&sol;a><&sol;b><&sol;li>&NewLine;<li><b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;microservices-with-spring-boot&sol;">Microservices with Spring Boot<&sol;a><&sol;b><&sol;li>&NewLine;<&sol;ol>&NewLine;<&sol;div>&NewLine;<&sol;div>&NewLine;<&sol;div>&NewLine;<&sol;div>&NewLine;<div class&equals;"wp-post-navigation"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-pre"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;installing-spring-boot&sol;">Previous<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-next"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;customizing-spring-boot-auto-configuration&sol;">Next<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;<&sol;div>&NewLine;<script type&equals;"text&sol;javascript">&NewLine;jQuery&lpar;document&rpar;&period;ready&lpar;function&lpar;&dollar;&rpar; &lbrace;&NewLine; &dollar;&period;post&lpar;'https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-admin&sol;admin-ajax&period;php'&comma; &lbrace;action&colon; 'mts&lowbar;view&lowbar;count'&comma; id&colon; '140'&rcub;&rpar;&semi;&NewLine;&rcub;&rpar;&semi;&NewLine;<&sol;script>

Dinesh Rajput

Dinesh Rajput is the chief editor of a website Dineshonjava, a technical blog dedicated to the Spring and Java technologies. It has a series of articles related to Java technologies. Dinesh has been a Spring enthusiast since 2008 and is a Pivotal Certified Spring Professional, an author of a book Spring 5 Design Pattern, and a blogger. He has more than 10 years of experience with different aspects of Spring and Java design and development. His core expertise lies in the latest version of Spring Framework, Spring Boot, Spring Security, creating REST APIs, Microservice Architecture, Reactive Pattern, Spring AOP, Design Patterns, Struts, Hibernate, Web Services, Spring Batch, Cassandra, MongoDB, and Web Application Design and Architecture. He is currently working as a technology manager at a leading product and web development company. He worked as a developer and tech lead at the Bennett, Coleman & Co. Ltd and was the first developer in his previous company, Paytm. Dinesh is passionate about the latest Java technologies and loves to write technical blogs related to it. He is a very active member of the Java and Spring community on different forums. When it comes to the Spring Framework and Java, Dinesh tops the list!

Share
Published by
Dinesh Rajput

Recent Posts

Strategy Design Patterns using Lambda

Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…

4 years ago

Decorator Pattern using Lambda

Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…

4 years ago

Delegating pattern using lambda

Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…

4 years ago

Spring Vs Django- Know The Difference Between The Two

Technology has emerged a lot in the last decade, and now we have artificial intelligence;…

4 years ago

TOP 20 MongoDB INTERVIEW QUESTIONS 2022

Managing a database is becoming increasingly complex now due to the vast amount of data…

4 years ago

Scheduler @Scheduled Annotation Spring Boot

Overview In this article, we will explore Spring Scheduler how we could use it by…

4 years ago