📖 Scenario: You are building a Spring Boot application that needs to expose custom information about the app through the /actuator/info endpoint.This is useful for showing app version, description, or other metadata in a standardized way.
🎯 Goal: Configure the Spring Boot info endpoint to expose custom application information using properties and Java configuration.
📋 What You'll Learn
Create a properties file with custom info entries
Enable the info endpoint in Spring Boot
Create a configuration class to add additional info programmatically
Verify the info endpoint exposes all configured information
💡 Why This Matters
🌍 Real World
Exposing application metadata helps operations teams monitor app versions and build details easily.
💼 Career
Configuring actuator info endpoints is a common task for backend developers working with Spring Boot microservices.
Progress0 / 4 steps
1
Create application.properties with custom info entries
Create a file named application.properties and add these exact entries: info.app.name=MyApp info.app.description=This is a sample Spring Boot app info.app.version=1.0.0
Spring Boot
Hint
Properties starting with info. are automatically exposed by Spring Boot's info endpoint.
2
Enable the info endpoint in application.properties
Add this exact line to application.properties to enable the info endpoint: management.endpoint.info.enabled=true
Spring Boot
Hint
Spring Boot actuator endpoints are disabled by default; you must enable the info endpoint explicitly.
3
Create a configuration class to add custom info programmatically
Create a Java class named CustomInfoConfig annotated with @Configuration. Inside it, create a method customInfoContributor annotated with @Bean that returns an InfoContributor. Inside the method, return a lambda that adds an info entry with key build.time and value "2024-06-01T12:00:00Z" using builder.withDetail.
Spring Boot
Hint
The InfoContributor interface allows adding custom info entries programmatically.
4
Expose the info endpoint by adding actuator dependency and verify
Ensure your project has the Spring Boot Actuator dependency added. In your main application class, add @SpringBootApplication annotation. Run the app and verify the /actuator/info endpoint shows app.name, app.description, app.version, and build.time entries.
Spring Boot
Hint
The main class must have a main method to run the Spring Boot app.
Verify the info endpoint by visiting http://localhost:8080/actuator/info in your browser.
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
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.
Step 2: Compare with other endpoint purposes
Unlike authentication or serving static content, info is specifically for metadata exposure.
Final Answer:
To provide application metadata like version and description -> Option A
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
Step 1: Recall the correct property prefix for management endpoints
Spring Boot uses management.endpoint.{name}.enabled to enable endpoints.
Step 2: Match the property for info endpoint
For the info endpoint, it is management.endpoint.info.enabled.
Final Answer:
management.endpoint.info.enabled=true -> Option C
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
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
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.
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"}}.
Final Answer:
{"app":{"name":"MyApp","version":"1.2.3"}} -> Option B
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
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.
Step 2: Verify exposure includes 'info'
If 'info' is missing from the exposure list, the endpoint returns 404 despite being enabled.
Final Answer:
The info endpoint is not included in management.endpoints.web.exposure.include -> Option D
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
Step 1: Enable the info endpoint
Set management.endpoint.info.enabled=true to activate the info endpoint.
Step 2: Expose the info endpoint over HTTP
Include 'info' in management.endpoints.web.exposure.include to make it accessible.
Step 3: Add custom build info properties
Use spring.info.build.version and spring.info.build.time to add custom metadata.
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