Nota al pie [2] de su enlace:
[2]: Dado que el procesamiento de <import/>
elementos necesariamente se produce antes de que se invocan BeanFactoryPostProcessors, lo que significa que incluso PropertyPlaceholderConfigurer no podía ayudar aquí. Debido a que el entorno y su conjunto de PropertySources se configuran antes de la actualización del contenedor, los marcadores de posición en los elementos se pueden resolver contra el entorno sin ningún problema de ciclo de vida.
ACTUALIZACIÓN:
De acuerdo con la javadoc for PropertySourcesPlaceholderConfigurer, PropertySourcesPlaceholderConfigurer
es un BeanFactoryPostProcessor
, así que lo que la nota realmente dice es que la importación se resuelve antes la PropertySourcesPlaceholderConfigurer está instalado, por lo que no funcionará cualquiera (De hecho, en el momento en que se resuelve el <import/>
, ¡el configurador podría no existir aún!) Sí, cuando esté instalado verá el Environment
, pero no podrá usarlo para resolver dentro de un <import/>
, porque en ese momento no postprocesadores están operativos Y eso incluye PropertySourcesPlaceholderConfigurer
.
Básicamente configuración contexto XML Spring va más o menos así: se crea
- Contexto.
Environment
está establecido.
- Se lee XML (todo XML, resolviendo las importaciones si es necesario). Se crean definiciones de frijoles
BeanFactoryPostProcessor
s se instalan e invocan, procesando las definiciones de bean.
BeanPostProcessor
s instalados.
- Los beans se crean instancias de acuerdo con las definiciones de bean. BeanPostProcessors se aplican.
Se trata de un problema similar como lo que hace que no se puede utilizar la propiedad order
de muchos post-procesadores para aplicar una BeanPostProccesor
ante un BeanFactoryPostProcessor
(para hacer algo como hacer un PropertyPlaceholderConfigurer
marcadores de posición a resolver de una @PersistenceContext
): el comportamiento es codificado en el contexto de la aplicación Spring, por lo que debe solucionarlo especializando algunas clases de Spring.
¿Qué sucede cuando pruebas esto? Errores, nada, etc. –
Sólo un error que dice "No se pudo resolver el marcador de posición 'login.security'". –