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