If a configuration properties class overrides a getter method, it's not seen properly by the annotation processor. As it works its way up the type hierarchy, the entry for the overriding method is replaced with the entry for the overridden method. One symptom of this is that when an overriding getter method is annotated with @DeprecatedConfigurationProperty the deprecation is missed.