If a configurer cannot resolve a placeholder, a BeanDefinitionStoreException
will be thrown. If you want to check against multiple properties files, specify multiple
resources via the locations property. You can also define multiple
configurers, each with its own placeholder syntax. Use ignoreUnresolvablePlaceholders to intentionally suppress throwing an exception if a
placeholder cannot be resolved.

Default property values can be defined globally for each configurer instance
via the properties property, or on a property-by-property basis
using the default value separator which is ":" by default and
customizable via setValueSeparator(String).

setIgnoreUnresolvablePlaceholders

Default is "false": An exception will be thrown if a placeholder fails
to resolve. Switch this flag to "true" in order to preserve the placeholder
String as-is in such a case, leaving it up to other placeholder configurers
to resolve it.

setBeanName

Only necessary to check that we're not parsing our own bean definition,
to avoid failing on unresolvable placeholders in properties file locations.
The latter case can happen with placeholders for system properties in
resource locations.

beanName - the name of the bean in the factory.
Note that this name is the actual bean name used in the factory, which may
differ from the originally specified name: in particular for inner bean
names, the actual bean name might have been made unique through appending
"#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String)
method to extract the original bean name (without suffix), if desired.

setBeanFactory

Only necessary to check that we're not parsing our own bean definition,
to avoid failing on unresolvable placeholders in properties file locations.
The latter case can happen with placeholders for system properties in
resource locations.