Класс времени выполнения Java NamingManager
служит связующим звеном между приложением Java и его каталогом имен.Когда SimpleNamingContextBuilder
активирует , он устанавливается на статический элемент InitialContextFactoryBuilder
в NamingManager
.Когда приложение создает InitialContext
для получения контекста JNDI, класс InitialContext
делегирует NamingManager, который, в свою очередь, запрашивает IntialContextFactoryBuilder
(в данном случае SimpleNamingContextBuilder
) для создания IntialContextFactory
, что в конечном итоге создает InitialContext
.
JndiObjectFactoryBean
, не нуждается в явной контекстной среде, поскольку SimpleNamingContextBuilder
предоставляет InitialContextFactory
для NamingManager
и JndiObjectFactoryBean
использует NamingManager
для получения своих ресурсов.Таким образом, в предыдущем ответе JndiObjectFactoryBean
«знает», что искать в каталоге имен Spring для ресурса my-db
, поскольку SimpleNamingContextBuilder
зарекомендовал себя как поставщик JNDI в NamingManager
.