Bird
Raised Fist0
Spring Bootframework~10 mins

Info endpoint configuration in Spring Boot - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Info endpoint configuration
Start Spring Boot App
↓
Load application.properties
↓
Check for info properties
↓
Expose /actuator/info endpoint
↓
Client requests /actuator/info
↓
Return configured info JSON
↓
Display info data to client
The app loads info properties from config, exposes the /actuator/info endpoint, and returns info data when requested.
Execution Sample
Spring Boot
management.endpoints.web.exposure.include=info
info.app.name=MyApp
info.app.version=1.0.0
This config exposes the info endpoint and sets app name and version info.
Execution Table
StepActionConfig LoadedEndpoint ExposedResponse to /actuator/info
1Start appNo config yetNoN/A
2Load propertiesinfo.app.name=MyApp, info.app.version=1.0.0NoN/A
3Expose info endpointSame as step 2YesN/A
4Client requests /actuator/infoSame as step 2Yes{"app":{"name":"MyApp","version":"1.0.0"}}
5Response sentSame as step 2YesClient sees JSON info data
💡 Info endpoint is exposed and returns configured info data on request.
Variable Tracker
VariableStartAfter Load ConfigAfter Expose EndpointAfter Request
info.app.namenull"MyApp""MyApp""MyApp"
info.app.versionnull"1.0.0""1.0.0""1.0.0"
endpoint.info.exposedfalsefalsetruetrue
response.info.jsonnullnullnull{"app":{"name":"MyApp","version":"1.0.0"}}
Key Moments - 2 Insights
Why doesn't the /actuator/info endpoint show data before setting info properties?
Because the info properties like info.app.name must be set in config before Spring Boot can include them in the info endpoint response, as shown in execution_table step 2 vs step 4.
What happens if management.endpoints.web.exposure.include does not include 'info'?
The info endpoint won't be exposed, so requests to /actuator/info will fail or return 404, as seen in execution_table step 3 where endpoint is not exposed until configured.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the response to /actuator/info at step 4?
A404 Not Found
B{"app":{"name":"MyApp","version":"1.0.0"}}
CEmpty JSON {}
DError 500
💡 Hint
Check the 'Response to /actuator/info' column at step 4 in execution_table.
At which step does the info endpoint become exposed?
AStep 3
BStep 1
CStep 2
DStep 5
💡 Hint
Look at the 'Endpoint Exposed' column in execution_table.
If you remove 'info.app.name' from config, what changes in variable_tracker after request?
Aendpoint.info.exposed becomes false
Binfo.app.version becomes null
Cinfo.app.name becomes null in response.info.json
Dresponse.info.json is empty
💡 Hint
Refer to variable_tracker row for info.app.name and response.info.json after request.
Concept Snapshot
Info endpoint config in Spring Boot:
- Set management.endpoints.web.exposure.include=info
- Add info.app.name, info.app.version in properties
- /actuator/info returns these as JSON
- Endpoint must be exposed to be accessible
- Useful for app metadata and health info
Full Transcript
This visual trace shows how Spring Boot loads info endpoint configuration. First, the app starts with no config. Then it loads properties including info.app.name and info.app.version. Next, it exposes the /actuator/info endpoint because the management.endpoints.web.exposure.include includes 'info'. When a client requests /actuator/info, the app returns a JSON with the configured info data. Variables like info.app.name and info.app.version hold the metadata, endpoint.info.exposed tracks if the endpoint is active, and response.info.json shows the returned JSON. Key points include that the info properties must be set to see data, and the endpoint must be exposed to be accessible. The quizzes test understanding of response content, exposure timing, and config effects.

Practice

(1/5)
1. What is the primary purpose of the info endpoint in a Spring Boot application?
easy
A. To provide application metadata like version and description
B. To expose database query results
C. To handle user authentication
D. To serve static web content

Solution

  1. Step 1: Understand the role of the info endpoint

    The info endpoint is designed to share metadata about the application, such as version, description, or build info.
  2. Step 2: Compare with other endpoint purposes

    Unlike authentication or serving static content, info is specifically for metadata exposure.
  3. Final Answer:

    To provide application metadata like version and description -> Option A
  4. Quick Check:

    Info endpoint = app metadata [OK]
Hint: Info endpoint shares app details, not data or auth [OK]
Common Mistakes:
  • Confusing info endpoint with security or data endpoints
  • Thinking it serves static files
  • Assuming it handles user login
2. Which property correctly enables the info endpoint in Spring Boot's application.properties file?
easy
A. info.endpoint.management.enabled=true
B. spring.info.endpoint.enabled=true
C. management.endpoint.info.enabled=true
D. management.info.enabled=true

Solution

  1. Step 1: Recall the correct property prefix for management endpoints

    Spring Boot uses management.endpoint.{name}.enabled to enable endpoints.
  2. Step 2: Match the property for info endpoint

    For the info endpoint, it is management.endpoint.info.enabled.
  3. Final Answer:

    management.endpoint.info.enabled=true -> Option C
  4. Quick Check:

    Enable info endpoint = management.endpoint.info.enabled [OK]
Hint: Use management.endpoint.info.enabled to enable info [OK]
Common Mistakes:
  • Using spring.info.endpoint.enabled which is invalid
  • Mixing property order or names
  • Using management.info.enabled which is incorrect
3. Given this application.properties snippet:
management.endpoints.web.exposure.include=info,health
spring.info.app.name=MyApp
spring.info.app.version=1.2.3

What will the /actuator/info endpoint return?
medium
A. {"application":{"name":"MyApp","version":"1.2.3"}}
B. {"app":{"name":"MyApp","version":"1.2.3"}}
C. {"appName":"MyApp","appVersion":"1.2.3"}
D. {"info":{"name":"MyApp","version":"1.2.3"}}

Solution

  1. Step 1: Understand spring.info property mapping

    Properties under spring.info.* appear as nested JSON keys matching their structure. Here, spring.info.app.name and spring.info.app.version create an "app" object.
  2. Step 2: Check the JSON structure returned by /actuator/info

    The info endpoint returns JSON with keys matching the spring.info hierarchy, so it returns {"app":{"name":"MyApp","version":"1.2.3"}}.
  3. Final Answer:

    {"app":{"name":"MyApp","version":"1.2.3"}} -> Option B
  4. Quick Check:

    spring.info.app.* -> JSON key "app" [OK]
Hint: spring.info.app.name -> JSON key 'app' with nested fields [OK]
Common Mistakes:
  • Assuming keys are renamed to 'info' or 'application'
  • Expecting flat JSON without nesting
  • Confusing property names with JSON keys
4. You added management.endpoint.info.enabled=true but /actuator/info still returns 404. What is the most likely cause?
medium
A. The property name is misspelled as management.endpoint.info.enable
B. The actuator dependency is not added
C. The application.properties file is missing
D. The info endpoint is not included in management.endpoints.web.exposure.include

Solution

  1. Step 1: Check endpoint exposure settings

    Even if the info endpoint is enabled, it must be exposed over HTTP by including it in management.endpoints.web.exposure.include.
  2. Step 2: Verify exposure includes 'info'

    If 'info' is missing from the exposure list, the endpoint returns 404 despite being enabled.
  3. Final Answer:

    The info endpoint is not included in management.endpoints.web.exposure.include -> Option D
  4. Quick Check:

    Enable + expose info endpoint = no 404 [OK]
Hint: Enable and expose info endpoint to avoid 404 [OK]
Common Mistakes:
  • Only enabling endpoint without exposing it
  • Misspelling property names
  • Assuming actuator dependency is always missing
5. You want to add custom build info to the info endpoint using spring.info.build.* properties and expose it. Which configuration snippet correctly achieves this?
hard
A. management.endpoint.info.enabled=true management.endpoints.web.exposure.include=info spring.info.build.version=2.0.1 spring.info.build.time=2024-06-01T12:00:00Z
B. management.endpoints.web.exposure.include=info spring.info.build.version=2.0.1 spring.info.build.time=2024-06-01T12:00:00Z
C. management.endpoint.info.enabled=true spring.info.build.version=2.0.1 management.endpoints.web.exposure.include=health
D. spring.info.build.version=2.0.1 management.endpoint.info.enabled=false management.endpoints.web.exposure.include=info

Solution

  1. Step 1: Enable the info endpoint

    Set management.endpoint.info.enabled=true to activate the info endpoint.
  2. Step 2: Expose the info endpoint over HTTP

    Include 'info' in management.endpoints.web.exposure.include to make it accessible.
  3. Step 3: Add custom build info properties

    Use spring.info.build.version and spring.info.build.time to add custom metadata.
  4. Final Answer:

    management.endpoint.info.enabled=true management.endpoints.web.exposure.include=info spring.info.build.version=2.0.1 spring.info.build.time=2024-06-01T12:00:00Z -> Option A
  5. Quick Check:

    Enable + expose + add spring.info.build.* = correct config [OK]
Hint: Enable, expose info, add spring.info.build.* properties [OK]
Common Mistakes:
  • Forgetting to expose info endpoint
  • Disabling info endpoint accidentally
  • Exposing wrong endpoints like only health
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