давайте поговорим о коде, класс, загружающий jndi, является одноэлементным, вы предоставите ему ключ к вашим ресурсам jndi. Ниже я загружаю источник данных (datasource = "JDBC / dummy").
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("jndicontext");
ds = (DataSource) envCtx.lookup("JDBC/dummy");
} catch (Exception e) {
log.error(e);
}
Исходный контекст возвращает мне ресурс как объект. Я мог бы загрузить боб таким же образом.
Connection conn = ds.getConnection();
Но какой в этом смысл? Просто храните объекты для конкретной среды, не учитывая их тип. А потом меняем информацию на лету. Вы заметите, я не пишу логин / пароль.
В этом примере, в зависимости от текущей среды:
- В производстве он возвращает соединение с базой данных.
- В среде интеграции он возвращает соединение с другой базой данных
- В процессе разработки он создает другую реализацию класса (фиктивные) и использует XML-файлы в качестве источника данных.
Привет