title: Spring boot does not fail for missing @Value property when it comes from custom starter
body: <p>When using custom starter:</p>
  
  <pre><code>@Configuration
  @PropertySource("classpath:monitoring.properties")
  @ConditionalOnProperty(value = "xxx.monitoring.enabled",
                         havingValue = "true",
                         matchIfMissing = true)
  public class MonitoringAutoConfiguration {
  
      private static final String XXX_MONITORING_SERVICE_NAME = "${xxx.monitoring.service-name}";
  
      @Bean
      public MeterRegistryCustomizer&lt;MeterRegistry&gt; metricsCommonTags(@Value(XXX_MONITORING_SERVICE_NAME)
                                                                              String serviceName) {
          return registry -&gt; registry.config()
                                     .commonTags("application", serviceName);
      }
  </code></pre>
  
  <p>When running integration test from within starter and not setting the value, I get:</p>
  
  <pre><code>Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'xxx.monitoring.service-name' in value "${xxx.monitoring.service-name}
  </code></pre>
  
  <p>When the starter kicks off in the main project it doesn't crash it as I expect it to, but resolves the value to :</p>
  
  <p><strong>"${xxx.monitoring.service-name}"</strong> instead, is that intentional? In my case I'd prefer the app to crash rather than corrupt metrics with this unresolved, can add validation but this behavior is surprising, I was aware of config properties, but not this.</p>