code: @Override
      public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
              throws BeansException {
          if (propertyResolver == null) {
              try {
                  MutablePropertySources sources = new MutablePropertySources();
                  PropertySource<?> localPropertySource =
                          new PropertiesPropertySource(EXTENDED_PROPERTIES_SOURCE, mergeProperties());
                  sources.addLast(localPropertySource);
  
                  propertyResolver = new PropertySourcesPropertyResolver(sources);
  
              } catch (IOException e) {
                  throw new BeanInitializationException("Could not load properties", e);
              }
          }
  
          super.postProcessBeanFactory(beanFactory);
      }
docs: Override the postProcessing. The default PropertySourcesPlaceholderConfigurer does not inject
  local properties into the Environment object. It builds a local list of properties files and
  then uses a transient Resolver to resolve the @Value annotations. That means that you are
  unable to get to "local" properties (eg. portal.properties) after bean post-processing has
  completed unless you are going to re-parse those file. This is similar to what
  PropertiesManager does, but it uses all the property files configured, not just
  portal.properties.
  
  <p>If we upgrade to spring 4, there are better/more efficient solutions available. I'm not
  aware of better solutions for spring 3.x.
  
  @param beanFactory the bean factory
  @throws BeansException if an error occurs while loading properties or wiring up beans