Пул соединений для Spring jdbcTemplate

73
13 февраля 2022, 00:50

Нужно создать свой пул соединений для Spring jdbcTemplate, поддерживающий lazy concurrent loading, и который будет создаваться как Spring Bean. Я так понимаю, что это как минимум нужно имплементить DataSource, внутри которого, методы getConnection будут вызывать, методы какого-то класса пула управляющего соединениями. Только мне непонятно, как этот класс должен с этими соединениями работать, если у этого DataSource нет никаких методов по возвращению соединений в пул, как управлять соединениями, они разве не закончатся?

Answer 1

Мне не очень понятно, что значит lazy concurrent loading в твоём контексте, но создать DataSource как Spring-бин довольно таки легко:

@Bean
public DataSource dataSource() {
  //тут создание
}

Реализация своего пула скорее всего будет напрасной работой, т.к. уже есть свободные библиотеки, решающие эту проблему. К примеру тот же HikariCP или Apache commons dbcp

Что касательно возврата соединений в DataSource. Внутри DataSource действительно нет никаких подобных методов. Однако они есть внутри Connection. Интерфейс Connection реализует интерфейс AutoCloseable. Следовательно по окончанию использования объекта с типом Connection разработчик обязан вызвать метод Connection#close(). В этом методе как раз и должна лежать логика возврата соединения обратно в пул DataSource.

READ ALSO
Как переделать scheduler для vaadin 14 (spring boot и vaadin 14)

Как переделать scheduler для vaadin 14 (spring boot и vaadin 14)

Всем привет я написал чат, где мне сказали чтобы я сделал таймер который будет каждую секунду вызывать функцию (api/unread) из RestServiceЯ ранее создал...

94
Could not find or load main class while opening .JAR using CMD | Gradle | Intellij-idea

Could not find or load main class while opening .JAR using CMD | Gradle | Intellij-idea

Мучаюсь уже не один деньГде-то лежит небольшая маленькая ошибка и из-за неё вот ничего не получаеться

96
Как обойтись без CloudPayments?

Как обойтись без CloudPayments?

Всем привет! У меня вопрос про то, как реализовать платежную систему в Java без использования систем как CloudPaymentsВот описание: В приложении реализуется...

88
Что не так с тэгами в XML(SPRING)

Что не так с тэгами в XML(SPRING)

Вроде делаю все по книжке, поменял лишь на свои данныеСреда разработки ругается, тэги указаны неверно

149