Bird
Raised Fist0
Spring Bootframework~5 mins

Health endpoint customization in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of customizing the health endpoint in Spring Boot?
Customizing the health endpoint allows you to control what health information is exposed, add custom health checks, and tailor the response to fit your application's monitoring needs.
Click to reveal answer
intermediate
How do you add a custom health indicator in Spring Boot?
Create a class that implements the HealthIndicator interface and override the health() method to return Health.up() or Health.down() with details. Then register it as a Spring bean.
Click to reveal answer
beginner
Which property controls the exposure of health details in Spring Boot's actuator?
The property 'management.endpoint.health.show-details' controls whether health details are shown. It can be set to 'never', 'when-authorized', or 'always'.
Click to reveal answer
beginner
What is the default URL path for the health endpoint in Spring Boot Actuator?
The default URL path is '/actuator/health'.
Click to reveal answer
intermediate
How can you restrict health endpoint access to authorized users only?
Use Spring Security to secure the '/actuator/health' endpoint and configure roles or authorities to allow access only to authorized users.
Click to reveal answer
What interface should you implement to create a custom health check in Spring Boot?
AHealthProvider
BHealthCheck
CHealthService
DHealthIndicator
Which property controls the visibility of detailed health information?
Amanagement.endpoint.health.show-details
Bmanagement.health.details.visible
Cspring.health.details.show
Dmanagement.health.show
What is the default path to access the health endpoint in Spring Boot Actuator?
A/health
B/actuator/health
C/status/health
D/monitor/health
How can you add custom details to the health response?
ABy adding key-value pairs in the health() method of a HealthIndicator
BBy modifying application.properties
CBy creating a new controller
DBy changing the actuator base path
To secure the health endpoint, you should:
AChange the endpoint URL
BDisable the health endpoint
CUse Spring Security to restrict access
DUse a firewall rule
Explain how to create and register a custom health indicator in Spring Boot.
Think about the interface and method you need to override.
You got /4 concepts.
    Describe how to control the visibility of health endpoint details and secure access to it.
    Consider both configuration properties and security setup.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of customizing the health endpoint in Spring Boot?
      easy
      A. To automatically restart the application on failure
      B. To change the port number of the application
      C. To add specific checks that show detailed app status
      D. To disable all health checks

      Solution

      1. Step 1: Understand the health endpoint role

        The health endpoint shows the app's status and can be extended to include custom checks.
      2. Step 2: Identify customization purpose

        Customizing allows adding specific checks to provide detailed status beyond default info.
      3. Final Answer:

        To add specific checks that show detailed app status -> Option C
      4. Quick Check:

        Health endpoint customization = detailed app status [OK]
      Hint: Health endpoint customization means adding detailed status checks [OK]
      Common Mistakes:
      • Thinking it changes app port
      • Assuming it disables health checks
      • Believing it restarts app automatically
      2. Which interface must you implement to create a custom health check in Spring Boot?
      easy
      A. HealthIndicator
      B. HealthCheck
      C. HealthService
      D. HealthStatus

      Solution

      1. Step 1: Recall Spring Boot health customization

        Custom health checks require implementing a specific interface.
      2. Step 2: Identify correct interface

        The interface to implement is HealthIndicator, which requires overriding health().
      3. Final Answer:

        HealthIndicator -> Option A
      4. Quick Check:

        Custom health check interface = HealthIndicator [OK]
      Hint: Custom health checks need HealthIndicator interface [OK]
      Common Mistakes:
      • Using HealthCheck instead of HealthIndicator
      • Confusing with HealthService or HealthStatus
      • Not overriding health() method
      3. Given this custom health indicator code, what will the health endpoint show?
      public class MyHealth implements HealthIndicator {
        @Override
        public Health health() {
          return Health.up().withDetail("db", "reachable").build();
        }
      }
      medium
      A. {"status":"UP","details":{"db":"reachable"}}
      B. {"status":"DOWN","details":{"db":"reachable"}}
      C. {"status":"UP"}
      D. {"status":"DOWN"}

      Solution

      1. Step 1: Analyze health() method return

        The method returns Health.up() with a detail key "db" set to "reachable".
      2. Step 2: Understand output format

        The health endpoint shows status "UP" and includes the details map with "db":"reachable".
      3. Final Answer:

        {"status":"UP","details":{"db":"reachable"}} -> Option A
      4. Quick Check:

        Health.up() with details = status UP plus details [OK]
      Hint: Health.up() withDetail adds details and sets status UP [OK]
      Common Mistakes:
      • Confusing UP with DOWN status
      • Ignoring details in output
      • Assuming default status without details
      4. Identify the error in this custom health indicator code:
      public class CustomHealth implements HealthIndicator {
        public Health health() {
          return Health.down().withDetails("error", "Database unreachable").build();
        }
      }
      medium
      A. Method should be annotated with @Override
      B. withDetails() method does not exist, should be withDetail()
      C. Method name should be checkHealth() instead of health()
      D. Health.down() cannot be used in custom indicators

      Solution

      1. Step 1: Check method signature and annotations

        The method correctly named health() matches interface; @Override annotation is optional but recommended.
      2. Step 2: Verify method calls on Health builder

        The method withDetails() does not exist; correct method is withDetail() for adding one detail.
      3. Final Answer:

        withDetails() method does not exist, should be withDetail() -> Option B
      4. Quick Check:

        Use withDetail() to add single detail [OK]
      Hint: Use withDetail() not withDetails() to add details [OK]
      Common Mistakes:
      • Missing @Override annotation (not error but best practice)
      • Wrong method name instead of health()
      • Thinking Health.down() is invalid
      5. You want to customize the health endpoint to show "UP" only if both database and cache are reachable. Which approach correctly implements this logic?
      hard
      A. Use two separate HealthIndicator classes without combining results
      B. Return Health.up() always and add details for database and cache status
      C. Return Health.down() always and ignore individual checks
      D. Return Health.up() if both checks pass; else Health.down() with details for each failure

      Solution

      1. Step 1: Understand combined health logic

        The health status should be UP only if both database and cache are reachable; otherwise DOWN.
      2. Step 2: Implement conditional return with details

        Return Health.up() if both pass; else return Health.down() and include details explaining which failed.
      3. Final Answer:

        Return Health.up() if both checks pass; else Health.down() with details for each failure -> Option D
      4. Quick Check:

        Combined checks control status UP or DOWN with details [OK]
      Hint: Return UP only if all checks pass; else DOWN with failure details [OK]
      Common Mistakes:
      • Returning UP regardless of failures
      • Ignoring combined status logic
      • Splitting checks without combining results
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard