{"id":83549,"date":"2018-11-19T10:00:49","date_gmt":"2018-11-19T08:00:49","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=83549"},"modified":"2018-11-17T19:31:28","modified_gmt":"2018-11-17T17:31:28","slug":"spring-boot-actuator-tutorial","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html","title":{"rendered":"Spring Boot Actuator Tutorial"},"content":{"rendered":"<p>Hello Friends, In this tutorial, we will learn about Spring actuator and what all it helps us with.<\/p>\n<p>1. What is Spring Actuator?<\/p>\n<p>2. How to add Spring actuator to Maven Project or Gradle Project?<\/p>\n<p>3. Create a Spring Boot project with Spring Actuator dependency.<\/p>\n<p>4. Monitoring the Application with Spring Actuator Endpoints.<a name=\"more\"><\/a><\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Spring-Boot-Image.jpeg\"><img decoding=\"async\" class=\"aligncenter wp-image-83574 size-full\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Spring-Boot-Image.jpeg\" alt=\"Spring actuator\" width=\"310\" height=\"162\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Spring-Boot-Image.jpeg 310w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Spring-Boot-Image-300x157.jpeg 300w\" sizes=\"(max-width: 310px) 100vw, 310px\" \/><\/a><\/p>\n<h2>What is Spring Actuator?<\/h2>\n<p>Once you have developed your application and it is deployed on production, it is very important to keep a check on the health of the application that is up and running, especially for mission-critical\u00a0applications like Banking applications, where\u00a0if customer-facing applications are down, it will directly impact the Business of the bank.<\/p>\n<p>In the traditional way, before Spring Actuator, we needed to write the code to check the Health of the application, but with Spring Actuator we need not to write any code for Health Check but Spring Actuator provides some out of the box endpoints which can be very useful for Health Check up of the application.<\/p>\n<h2>How to add Spring actuator to Maven Project or Gradle Project?<\/h2>\n<h3><b>Maven<\/b><\/h3>\n<pre class=\"brush:xml\">&lt;dependencies&gt;\r\n &lt;dependency&gt;\r\n  &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;spring-boot-starter-actuator&lt;\/artifactId&gt;\r\n &lt;\/dependency&gt;\r\n&lt;\/dependencies&gt;<\/pre>\n<h3><b>Gradle<\/b><\/h3>\n<pre class=\"brush:java\">dependencies {\r\n compile(\"org.springframework.boot:spring-boot-starter-actuator\")\r\n}<\/pre>\n<h2>Create a Spring Boot project with Spring Actuator dependency<\/h2>\n<p>Let us go ahead and create a Spring Boot Project with Spring Actuator dependency(Along with Web and DevTools) using Spring Initializer\u00a0<a href=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/start.spring.io\/<\/a><\/p>\n<p>Please note that as of writing this tutorial, Spring Boot version is 2.1.0<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83575 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM-1024x506.png\" alt=\"Spring actuator\" width=\"620\" height=\"306\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM-1024x506.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM-300x148.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM-768x379.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-12.21.46-PM.png 1439w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Import the project in Eclipse or any other IDE of your choice and run\u00a0SpringActuatorApplication.java.<\/p>\n<p>You will see following in your Eclipse console :<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83576 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM-1024x405.png\" alt=\"Spring actuator\" width=\"620\" height=\"245\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM-1024x405.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM-300x119.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM-768x304.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-8.05.07-PM.png 1436w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Which shows that embedded Tomcat has started on Port 8080 and SpringActuatorApplication has started on Tomcat. Also in console logs, you can see that actuator endpoints are exposed over \/actuator URI.<\/p>\n<p>018-11-09 20:00:29.346 INFO 8338 &#8212; [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 8080 (http) with context path &#8221;<\/p>\n<p>2018-11-09 20:00:29.354 INFO 8338 &#8212; [restartedMain] n.b.j.s.SpringActuatorApplication: Started SpringActuatorApplication in 9.273 seconds (JVM running for 11.823)<\/p>\n<p>2018-11-09 20:00:29.190INFO 8338 &#8212; [restartedMain] o.s.b.a.e.web.EndpointLinksResolver: Exposing 2 endpoint(s) beneath base path &#8216;\/actuator&#8217;.<\/p>\n<h2>Monitoring the Application with Spring Actuator Endpoints<\/h2>\n<p>As we discussed above, Spring actuator provides some out of the box endpoints which we can use to monitor the health of the application.<\/p>\n<table dir=\"ltr\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col \/> <\/colgroup>\n<colgroup>\n<col \/> <\/colgroup>\n<tbody>\n<tr>\n<td>ID<\/td>\n<td>Description<\/td>\n<\/tr>\n<tr>\n<td>auditevents<\/td>\n<td>Exposes audit events information for the current application.<\/td>\n<\/tr>\n<tr>\n<td>beans<\/td>\n<td>Displays a complete list of all the Spring beans in your application.<\/td>\n<\/tr>\n<tr>\n<td>caches<\/td>\n<td>Exposes available caches.<\/td>\n<\/tr>\n<tr>\n<td>conditions<\/td>\n<td>Shows the conditions that were evaluated on configuration and auto-configuration classes and the reasons why they did or did not match.<\/td>\n<\/tr>\n<tr>\n<td>configprops<\/td>\n<td>Displays a collated list of all @ConfigurationProperties.<\/td>\n<\/tr>\n<tr>\n<td>env<\/td>\n<td>Exposes properties from Spring\u2019s ConfigurableEnvironment.<\/td>\n<\/tr>\n<tr>\n<td>flyway<\/td>\n<td>Shows any Flyway database migrations that have been applied.<\/td>\n<\/tr>\n<tr>\n<td>health<\/td>\n<td>Shows application health information.<\/td>\n<\/tr>\n<tr>\n<td>httptrace<\/td>\n<td>Displays HTTP trace information (by default, the last 100 HTTP request-response exchanges).<\/td>\n<\/tr>\n<tr>\n<td>info<\/td>\n<td>Displays arbitrary application info.<\/td>\n<\/tr>\n<tr>\n<td>integrationgraph<\/td>\n<td>Shows the Spring Integration graph.<\/td>\n<\/tr>\n<tr>\n<td>loggers<\/td>\n<td>Shows and modifies the configuration of loggers in the application.<\/td>\n<\/tr>\n<tr>\n<td>liquibase<\/td>\n<td>Shows any Liquibase database migrations that have been applied.<\/td>\n<\/tr>\n<tr>\n<td>metrics<\/td>\n<td>Shows \u2018metrics\u2019 information for the current application.<\/td>\n<\/tr>\n<tr>\n<td>mappings<\/td>\n<td>Displays a collated list of all @RequestMapping paths.<\/td>\n<\/tr>\n<tr>\n<td>scheduledtasks<\/td>\n<td>Displays the scheduled tasks in your application.<\/td>\n<\/tr>\n<tr>\n<td>sessions<\/td>\n<td>Allows retrieval and deletion of user sessions from a Spring Session-backed session store. Not available when using Spring Session\u2019s support for reactive web applications.<\/td>\n<\/tr>\n<tr>\n<td>shutdown<\/td>\n<td>Lets the application be gracefully shutdown.<\/td>\n<\/tr>\n<tr>\n<td>threaddump<\/td>\n<td>Performs a thread dump.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Enable endpoints<\/h3>\n<p>By default, all endpoints except shutdown are enabled. To enable an endpoint, use following property in the application.properties file.<\/p>\n<pre class=\"brush:bash\">management.endpoint.&lt;id&gt;.enabled<\/pre>\n<p><b>Example:<\/b><\/p>\n<p>To enable <b>shutdown<\/b> endpoint, we need to make following entry in the application.properties file :<\/p>\n<pre class=\"brush:bash\">management.endpoint.shutdown.enabled=true<\/pre>\n<p>Alternatively, we can disable all endpoints and then selectively enable the one which we want. With the following configuration, all endpoints except info will be disabled.<\/p>\n<pre class=\"brush:bash\">management.endpoints.enabled-by-default=false\r\n\r\nmanagement.endpoint.info.enabled=true<\/pre>\n<h2>Endpoint Actuator<\/h2>\n<p>Let us hit the URL http:\/\/localhost:8080\/actuator and see endpoints.<\/p>\n<p><b>Note<\/b>: I am using Postman to test endpoints as it shows JSON in a well-structured format. You are free to use any other such tool or simply a browser.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83577 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM-1024x474.png\" alt=\"Spring actuator\" width=\"620\" height=\"287\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM-1024x474.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM-300x139.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM-768x356.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.03.53-PM.png 1134w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Exposing endpoints in Spring Actuator<\/h3>\n<p>As you would have noticed already, here only health and info endpoints can be seen. This is because these are the only endpoints which are exposed by default. All endpoints are not exposed by\u00a0default for security reasons as they might have some sensitive information and hence can be compromised.<\/p>\n<h3>Exposing specific endpoints<\/h3>\n<p>If we want to expose other endpoints over Web(Http), we need to make following entries in the application.properties file.<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.exposure.include= &lt;Comma separated list of Ids of endpoints which we want to expose&gt;<\/pre>\n<p><b>Example<\/b><\/p>\n<pre class=\"brush:bash\">management.endpoints.web.exposure.include= health,info,env<\/pre>\n<p>Now after adding above entry in the application.properties, let us hit URL http:\/\/localhost:8080\/actuator again.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>As we can see in the below screenshot, env endpoint is also enabled.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83578 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM-1024x617.png\" alt=\"Spring actuator\" width=\"620\" height=\"374\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM-1024x617.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM-300x181.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM-768x463.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-09-at-9.15.29-PM.png 1135w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Exposing all endpoints<\/h3>\n<p>If we want to enable all the endpoints, we can use wildcard * as following in application.properties.<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.exposure.include=*<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83580 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM-1024x487.png\" alt=\"Spring actuator\" width=\"620\" height=\"295\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM-1024x487.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM-300x143.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM-768x365.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.58.20-PM.png 1240w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Exposing all endpoints except few specific<\/h3>\n<p>Below two entries will enable all endpoints but disable only env endpoint.<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.exposure.include=*\r\n\r\nmanagement.endpoints.web.exposure.exclude=env<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83581 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM-1024x460.png\" alt=\"Spring actuator\" width=\"620\" height=\"279\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM-1024x460.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM-300x135.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM-768x345.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.59.57-PM.png 1237w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83582 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM-1024x214.png\" alt=\"Spring actuator\" width=\"620\" height=\"130\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM-1024x214.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM-300x63.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM-768x160.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-10.01.12-PM.png 1240w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Disabling HTTP endpoints<\/h3>\n<p>If you don&#8217;t want to expose endpoints over HTTP, this can be done by configuring following in application.properties :<\/p>\n<pre class=\"brush:bash\">management.server.port=-1<\/pre>\n<p>or alternatively, you can configure following in\u00a0the application.properties :<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.exposure.exclude=*<\/pre>\n<h3>Customizing the actuator URL to access various endpoints<\/h3>\n<p>By default, all web endpoints are available under \/actuator with URLs of the form \/actuator\/{id}.<\/p>\n<p>However, it is possible to configure basepath \/actuator by configuring following property in the application.properties.<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.base-path<\/pre>\n<p>For Example, if you want to make the base URL as \/monitor instead of \/actuator, you<br \/>\ncan configure in application.properties as follows:<\/p>\n<pre class=\"brush:bash\">management.endpoints.web.base-path=\/monitor<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83583 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM-1024x569.png\" alt=\"Spring actuator\" width=\"620\" height=\"345\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM-1024x569.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM-300x167.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM-768x427.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.38.26-PM.png 1139w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>With this, all endpoints can be accessed as \/monitor\/{id} instead of \/actuator\/{id}<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83584 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM-1024x301.png\" alt=\"Spring actuator\" width=\"620\" height=\"182\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM-1024x301.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM-300x88.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM-768x226.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-10-at-9.48.44-PM.png 1142w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>Spring Boot Actuator endpoints<\/h3>\n<p>Let us discuss some of the most important endpoints.<\/p>\n<h3>\/health<\/h3>\n<p>health endpoint gives the status of the application if it is Up and running or not. This is very important to monitor the application&#8217;s health when it is in production. This endpoint can be integrated with monitoring applications and will be very helpful in telling the real-time\u00a0health of the applications.<\/p>\n<h3>Health Information<\/h3>\n<p>How much information for health endpoint will be exposed depends on the configuration of the property management.endpoint.health.show-details\u00a0\u00a0in the application.properties file.<\/p>\n<p>if management.endpoint.health.show-details=never,Then details are never shown. In this case, you will see only the following information. This is the default behavior as well.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83585 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM-1024x188.png\" alt=\"Spring actuator\" width=\"620\" height=\"114\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM-1024x188.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM-300x55.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM-768x141.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.06.44-PM.png 1238w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>if management.endpoint.health.show-details=always, Details are shown to the all users.So as we can see in below response, we have diskspace information as well. If your application is connected to a database then you will have information about database health as well.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83586 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM-1024x338.png\" alt=\"Spring actuator\" width=\"620\" height=\"205\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM-1024x338.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM-300x99.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM-768x253.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.59.07-PM.png 1234w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>if\u00a0<strong>management.endpoint.health.show-details=when-authorized<\/strong>, details are shown only to authorized users.Authorized roles can be configured using management.endpoint.health.roles property.<\/p>\n<h3>AutoConfigured Health Indicators<\/h3>\n<p>Spring Boot Actuator has lots of autoconfigured HeathIndicators to check Health of the various parts of the application. For example, Spring Boot Actuator provides DiskspaceHealthIndicator which gives information about the health of the Disk space used by the application. Similarly, if you are using MongoDB then MongoHealthIndicator will check for the health of the Mongo DB(whether is is UP) and relevant information is displayed. By default, final application status is derived by the HealthAggregator, which basically sorts the statuses from each of the HealthIndicator\u00a0based on the ordered list of statuses. The first status in the sorted list is used as the final status of the application.<\/p>\n<h3>Disabling all Autoconfigured Health Indicators<\/h3>\n<p>These health indicators are enabled by default, however, it is possible to disable them with the following property :<\/p>\n<pre class=\"brush:bash\">management.health.defaults.enabled=false<\/pre>\n<h2>Disabling individual Autoconfigured Health Indicators<\/h2>\n<p>Or alternatively, it is also possible to disable individual HealthIndicator as below, for example for disabling for a health check of\u00a0diskspace:<\/p>\n<pre class=\"brush:bash\">management.health.diskspace.enabled=false<\/pre>\n<p><b>Note<\/b>: Identifier for any HealthIndicator\u00a0will be the name of the bean without HealthIndicator suffix.<br \/>\nFor Example :<\/p>\n<pre class=\"brush:bash\">DiskSpaceHealthIndicator\u00a0 \u00a0 \u00a0 \u00a0diskspace\r\nMongoHealthIndicator\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0mongo\r\nCassandraHealthIndicator\u00a0 \u00a0 \u00a0 \u00a0 cassandra\r\nDataSourceHealthIndicator\u00a0 \u00a0 \u00a0 datasource<\/pre>\n<p>and So on&#8230;<\/p>\n<h3>Custom Health Indicators<\/h3>\n<p>Along with the built-in HealthIndicators provided by the Spring Boot Actuator,we can create our own custom Health Indicators as well. For that, you need to create a class which implements HealthIndicator interface and implements its health() method and return Health as a response with relevant information as below :<\/p>\n<pre class=\"brush:java\">import org.springframework.boot.actuate.health.Health;\r\nimport org.springframework.boot.actuate.health.HealthIndicator;\r\nimport org.springframework.stereotype.Component;\r\n\r\n@Component\r\npublic class CustomHealthIndicator implements HealthIndicator {\r\n\r\n @Override\r\n public Health health() {\r\n  int errorCode = 0; \r\n  \/\/ In the above line,I am simple assigning zero,but you can call Health check related code like below commented line and that method can return the appropriate code.\r\n  \/\/ int errorCode = performHealthCheck();\r\n  if (errorCode != 0) {\r\n   return Health.down().withDetail(\"Error Code\", errorCode).build();\r\n  }\r\n  return Health.up().build();\r\n }\r\n\r\n}<\/pre>\n<p>Let us hit health endpoint again now and see if our custom health indicator is reflected or not.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83588 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM-1024x376.png\" alt=\"Spring actuator\" width=\"620\" height=\"228\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM-1024x376.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM-300x110.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM-768x282.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-2.47.56-PM.png 1238w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>As we can see in above screenshot that custom health check has been included.<\/p>\n<h3>Health Status per Component<\/h3>\n<p>It is also possible to check for the health status of an individual component. In the above example, we saw custom health status as well as diskSpace health status.<\/p>\n<p>In case, we want to see only diskSpace health status, then we can do as follows :<\/p>\n<p>http:\/\/localhost:8080\/actuator\/health\/diskSpace<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83589 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM-1024x280.png\" alt=\"Spring actuator\" width=\"620\" height=\"170\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM-1024x280.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM-300x82.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM-768x210.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.05.38-PM.png 1236w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>\/info<\/h3>\n<p>info endpoint gives general information about the application which it gets from files like build-info.properties or git.properties or from any property under the key info in application.properties.<\/p>\n<p>As in\u00a0 our project, there is no such file, so if we will hit info endpoint, it will display just empty response as below :<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83590 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM-1024x242.png\" alt=\"Spring actuator\" width=\"620\" height=\"147\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM-1024x242.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM-300x71.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM-768x182.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.45.03-PM.png 1239w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Spring Boot Actuator displays build-related information if a META-INF\/build-info.properties files are present.\u00a0<b>build-info<\/b> goal generates such file with the coordinates of the project and the build time. It also allows you to add an arbitrary number of additional properties.<\/p>\n<p>Let us add a build-info goal in the pom.xml of our project as below in the spring-boot-maven-plugin plugin.<\/p>\n<pre class=\"brush:xml\">&lt;plugin&gt;\r\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\r\n        &lt;artifactId&gt;spring-boot-maven-plugin&lt;\/artifactId&gt;\r\n        &lt;version&gt;2.1.0.RELEASE&lt;\/version&gt;\r\n        &lt;executions&gt;\r\n          &lt;execution&gt;\r\n            &lt;goals&gt;\r\n              &lt;goal&gt;build-info&lt;\/goal&gt;\r\n            &lt;\/goals&gt;\r\n            &lt;configuration&gt;\r\n              &lt;additionalProperties&gt;\r\n                &lt;encoding.source&gt;UTF-8&lt;\/encoding.source&gt;\r\n                &lt;encoding.reporting&gt;UTF-8&lt;\/encoding.reporting&gt;\r\n                &lt;java.source&gt;${maven.compiler.source}&lt;\/java.source&gt;\r\n                &lt;java.target&gt;${maven.compiler.target}&lt;\/java.target&gt;\r\n              &lt;\/additionalProperties&gt;\r\n            &lt;\/configuration&gt;\r\n          &lt;\/execution&gt;\r\n        &lt;\/executions&gt;\r\n &lt;\/plugin&gt;<\/pre>\n<p>Now let us hit info endpoint again and we can see build info as below:<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83591 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM-1024x442.png\" alt=\"Spring actuator\" width=\"620\" height=\"268\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM-1024x442.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM-300x129.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM-768x331.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-12.49.01-PM.png 1235w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Also, we can add application information under info key in application.properties as below and same will be displayed in the \/info endpoint.<\/p>\n<pre class=\"brush:bash\">info.application.name=spring-actuator\r\ninfo.application.description=spring boot actuator application\r\ninfo.application.version=0.0.1-SNAPSHOT<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83592 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM-1024x505.png\" alt=\"Spring actuator\" width=\"620\" height=\"306\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM-1024x505.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM-300x148.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM-768x379.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-1.44.59-PM.png 1240w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>\/beans<\/h3>\n<p>beans endpoint gives all the beans defined in the Spring bean container with the following information about each bean :<\/p>\n<pre class=\"brush:bash\">aliases\u00a0 : Names of any aliases\r\nScope\u00a0 \u00a0: Scope of bean\r\ntype\u00a0 \u00a0 \u00a0 : Fully qualified type of a bean.\r\nresource : Resource(class) in which bean is defined.\r\ndependencies :names of dependent beans.<\/pre>\n<p>For example, I created a RestController with name TestController.java and injected a bean with name TestService.java<\/p>\n<pre class=\"brush:java\">import org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.web.bind.annotation.GetMapping;\r\nimport org.springframework.web.bind.annotation.RestController;\r\n\r\n@RestController\r\npublic class TestController {\r\n \r\n @Autowired\r\n private TestService testService;\r\n \r\n @GetMapping(\"\/messages\")\r\n public String getMessage() {\r\n  return \"Hello\";\r\n }\r\n}<\/pre>\n<pre class=\"brush:java\">import org.springframework.context.annotation.Configuration;\r\n\r\n@Configuration\r\npublic class TestService {\r\n\r\n}<\/pre>\n<p>and you can see how it reflected in below screenshot with id testController.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83593 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM-1024x533.png\" alt=\"Spring actuator\" width=\"620\" height=\"323\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM-1024x533.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM-300x156.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM-768x400.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.21.28-PM.png 1241w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>\/configprops<\/h3>\n<p>configProps endpoint give\u00a0 you all the beans which are annotated with @ConfigurationProperties.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83594 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM-1024x538.png\" alt=\"Spring actuator\" width=\"620\" height=\"326\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM-1024x538.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM-300x158.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM-768x403.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.35.23-PM.png 1236w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>In the above screenshot, we can see two beans which are predefined in Spring framework itself and are annotated with @ConfigurationProperties and hence are displayed under this endpoint.<\/p>\n<p>Below screenshot displays source code of HttpTraceProperties which is annotated with @ConfigurationProperties.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.37.18-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83595 size-full\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.37.18-PM.png\" alt=\"Spring actuator\" width=\"685\" height=\"311\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.37.18-PM.png 685w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.37.18-PM-300x136.png 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><\/a><\/p>\n<h3>\/env<\/h3>\n<p>env endpoint gives you all the enviorenment specific information viz in the following order :<\/p>\n<pre class=\"brush:bash\">System Properties\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0- JVM specific(Platform Independent)\r\nSystem Env. or Env. Variables\u00a0 - Operating System specific(Platform Dependent)\r\napplication level configuration - Defined in application.properties<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83596 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM-1024x391.png\" alt=\"Spring actuator\" width=\"620\" height=\"237\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM-1024x391.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM-300x115.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM-768x294.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-4.52.52-PM.png 1240w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>\/heapdump<\/h3>\n<p>heapdump endpoint gives Heap dump from the application\u00a0 JVM. This endpoint returns binary data in HPROF format. As the data returned is usually huge, you should save it and analyze.<\/p>\n<h3>\/loggers<\/h3>\n<p>loggers endpoint gives the application&#8217;s loggers and their configuredLevel,effectiveLevel(If the configured level is null for this logger and it&#8217;s parents&#8217; as well, the effective level will be logger level of the root logger).<\/p>\n<p>levels property tells which all levels are supported by the logging framework.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83597 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM-1024x567.png\" alt=\"Spring actuator\" width=\"620\" height=\"343\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM-1024x567.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM-300x166.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM-768x425.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.05.03-PM.png 1238w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3>logger info for a specific logger<\/h3>\n<p>To get logger information for a specific logger, pass the name\/id of the logger in the URL after \/loggers endpoint as below :<\/p>\n<p>http:\/\/localhost:8080\/actuator\/loggers\/nl.blogpsot.javasolutionsguide.springactuator.SpringActuatorApplication<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83598 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM-1024x220.png\" alt=\"Spring actuator\" width=\"620\" height=\"133\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM-1024x220.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM-300x64.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM-768x165.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.09.53-PM.png 1236w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h3><b>\/metrics<\/b><\/h3>\n<p>metrics endpoint gives you all the metrics which you can track for your application.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83600 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM-1024x564.png\" alt=\"Spring actuator\" width=\"620\" height=\"341\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM-1024x564.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM-300x165.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM-768x423.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.12.54-PM.png 1241w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Checking individual metric<\/h3>\n<p>You can track individual metric by passing specific metric to the URL after \/metrics endpoint as below:<\/p>\n<p>http:\/\/localhost:8080\/actuator\/metrics\/jvm.memory.used<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-83601 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM-1024x540.png\" alt=\"Spring actuator\" width=\"620\" height=\"327\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM-1024x540.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM-300x158.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM-768x405.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/11\/Screen-Shot-2018-11-11-at-5.14.47-PM.png 1241w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>That&#8217;s all on Spring Actuator.Thanks for reading. Please share it with someone, you think this might be helpful.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on Java Code Geeks with permission by Gaurav Bhardwaj, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener\">JCG program<\/a>. See the original article here: <a href=\"http:\/\/javasolutionsguide.blogspot.com\/2018\/11\/spring-boot-actuator-tutorial.html\" target=\"_blank\" rel=\"noopener\">Spring Boot Actuator Tutorial<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello Friends, In this tutorial, we will learn about Spring actuator and what all it helps us with. 1. What is Spring Actuator? 2. How to add Spring actuator to Maven Project or Gradle Project? 3. Create a Spring Boot project with Spring Actuator dependency. 4. Monitoring the Application with Spring Actuator Endpoints. What is &hellip;<\/p>\n","protected":false},"author":955,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[854],"class_list":["post-83549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","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 Actuator Tutorial - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.\" \/>\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\/2018\/11\/spring-boot-actuator-tutorial.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Actuator Tutorial - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.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=\"2018-11-19T08:00:49+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=\"Gaurav Bhardwaj\" \/>\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=\"Gaurav Bhardwaj\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html\"},\"author\":{\"name\":\"Gaurav Bhardwaj\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/58bd3e1f6edc1bed6a6374fe9a34ca37\"},\"headline\":\"Spring Boot Actuator Tutorial\",\"datePublished\":\"2018-11-19T08:00:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html\"},\"wordCount\":1918,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Spring Boot\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html\",\"name\":\"Spring Boot Actuator Tutorial - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2018-11-19T08:00:49+00:00\",\"description\":\"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.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\\\/2018\\\/11\\\/spring-boot-actuator-tutorial.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 Actuator Tutorial\"}]},{\"@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\\\/58bd3e1f6edc1bed6a6374fe9a34ca37\",\"name\":\"Gaurav Bhardwaj\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g\",\"caption\":\"Gaurav Bhardwaj\"},\"description\":\"Gaurav has done Masters in Computer Applications(MCA) and is working in Software development field for more than 10 years in Java\\\/J2EE technologies. He is currently working with one of top MNC. He has worked on various frameworks like Struts, Spring, Spring Boot, Angular JS, JSF, Velocity, iBatis, MyBatis, Hibernate, JUnit, Mockito, Dozzer. He likes to explore new technologies and share his thoughts by writing a technical blog. He is the founder of JavaSolutionsGuide.blogspot.com.\",\"sameAs\":[\"http:\\\/\\\/www.javasolutionsguide.blogspot.nl\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/gaurav-bhardwaj\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot Actuator Tutorial - Java Code Geeks","description":"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.","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\/2018\/11\/spring-boot-actuator-tutorial.html","og_locale":"en_US","og_type":"article","og_title":"Spring Boot Actuator Tutorial - Java Code Geeks","og_description":"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.","og_url":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2018-11-19T08:00:49+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":"Gaurav Bhardwaj","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Gaurav Bhardwaj","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html"},"author":{"name":"Gaurav Bhardwaj","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/58bd3e1f6edc1bed6a6374fe9a34ca37"},"headline":"Spring Boot Actuator Tutorial","datePublished":"2018-11-19T08:00:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html"},"wordCount":1918,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Spring Boot"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html","url":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html","name":"Spring Boot Actuator Tutorial - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2018-11-19T08:00:49+00:00","description":"Interested to learn about Spring actuator? Check our article that we will learn about Spring actuator and what all it helps us with.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2018\/11\/spring-boot-actuator-tutorial.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\/2018\/11\/spring-boot-actuator-tutorial.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 Actuator Tutorial"}]},{"@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\/58bd3e1f6edc1bed6a6374fe9a34ca37","name":"Gaurav Bhardwaj","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/657921afcac1f1ddf98dfb349121a07b4dcc1d42d5bd277150cf3ed8156de723?s=96&d=mm&r=g","caption":"Gaurav Bhardwaj"},"description":"Gaurav has done Masters in Computer Applications(MCA) and is working in Software development field for more than 10 years in Java\/J2EE technologies. He is currently working with one of top MNC. He has worked on various frameworks like Struts, Spring, Spring Boot, Angular JS, JSF, Velocity, iBatis, MyBatis, Hibernate, JUnit, Mockito, Dozzer. He likes to explore new technologies and share his thoughts by writing a technical blog. He is the founder of JavaSolutionsGuide.blogspot.com.","sameAs":["http:\/\/www.javasolutionsguide.blogspot.nl\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/gaurav-bhardwaj"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/83549","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\/955"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=83549"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/83549\/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=83549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=83549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=83549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}