Насколько я понимаю, оба DataSource
и JdbcTemplates
являются потокобезопасными
, поэтому вы можете настроить один экземпляр JdbcTemplate
, а затем безопасно внедрить эту общую ссылку в несколько DAO (или репозиториев) . Также DataSource
должен быть синглтоном Spring, поскольку он управляет пулом соединений.
Официальная Spring Documentation Рекомендации JdbcTemplate объясняют альтернативы (выдержки из руководства выделены курсивом, а мои примечания заключены в квадратные скобки:
новый JdbcTemplate (dataSource)
] Однако в более позднем примечании не приветствуются все только что представленные варианты:
После настройки экземпляр JdbcTemplate является потокобезопасным. Вам может понадобиться несколько экземпляров JdbcTemplate, если ваше приложение обращается к нескольким базам данных, для чего требуется несколько источников данных, а затем несколько различных конфигураций JdbcTemplate.
Другими словами, все только что представленные параметры приведут к появлению нескольких экземпляров JdbcTemplate (по одному для каждого DAO), и сразу после того, как в документации говорится, что это не обязательно при работе с одной базой данных.
Что бы я сделал, так это внедрил напрямую JdbcTemplate
в различные DAO, которые в этом нуждаются, поэтому мой вопрос: можно ли это сделать? А также считаете ли вы, что справочная документация Spring противоречива сама себе? Или это мое недоразумение?