Я столкнулся со странным сценарием с Spring NamedParameterJdbcTemplate. У меня есть установка проекта с context.getBean(), вызывающая Spring NamedParameterJdbcTemplate. Это вызывается как часть начальной настройки с помощью метода @PostConstruct. По сути, метод post-construct вызывает базу данных, чтобы выполнить некоторые настройки, связанные со средой.
Теперь вызов getBean bean-компонента NamedParameterJdbcTemplate занимает много времени - на самом деле, в Eclipse мне пришлось ждать более 5 минут и так и не получить экземпляр. Однако тот же код отлично работает, если я использую @Inject вместо getBean.
Во-вторых, в той же настройке есть компонент для простого JdbcTemplate. Если я получу этот компонент, а затем вызову его с помощью NamedParamJdbcTemplate, проблем нет. Проблема, кажется, только тогда, когда NamedParamJdbcTemplate является первым вызовом bean-компонента.
Есть ли разница в том, что это называется первым и вторым? Разве мы не должны называть это первым бобом? Я не могу найти никакой документации по этому поводу.
Спасибо, Аравинд
Обычно, когда вы делаете такие вещи, как
getBean, вы делаете что-то неправильно. Вместо этого вы должны использовать@Autowiredили (как и@Inject). Также, вообще говоря, не должно быть разницы в том, как вы получаете бин. Однако без фактического кода это будет игра в угадывание, поэтому, пожалуйста, добавьте код.