Reputation: 776
I have been prototyping with Spring boot where I added dependency on spring-boot-starter-actuator
and spring-boot-starter-data-rest
and named my testing REST endpoint to /info
. Application ran without any errors however my endpoint couldn't be called and app returned 404 all the time.
After some time I found out that actuator project contains SAME endpoint /info
and basically overrides my custom RESTful endpoint since I didn't name it.
My question is: Is there any way how I can prevent such behavior in general (meaning bean clashing by mistake)? Or at least get WARN message when this is happening.
Thanks in advance for your answers
Upvotes: 4
Views: 4153
Reputation: 14678
You can disable /info
actuator endpoint by using the following property;
management.endpoint.info.enabled=false
Actually all can be disabled, or you can enable only certain ones, if you check the source link I've provided below;
By default, all endpoints except for shutdown are enabled. If you prefer to specifically “opt-in” endpoint enablement you can use the endpoints.enabled property.
For logging of this behaviour, while deploying you can see the endpoints and corresponding beans, you can deduce from this log I guess. But better not to use same endpoint with actuator while they are enabled.
Upvotes: 5
Reputation: 3131
Yes, there is a chance to disable particular classes by @EnableAutoconfiguration
with a parameter exclude=
where you can specify classname or whole package by using {} brackets
Example:
@EnableAutoConfiguration(exclude = {MyClassName.class}
@EnableAutoConfiguration(exclude = {MyClassName.class, MyClassName2.class})
Upvotes: 2