При работе с пулом соединений обычно используется следующий код:
Код: Выделить всё
connection c = pool.borrow();
try {
business-logic-using-connection(c);
}
catch(connectionException e) {
connectionBad = true;
}
finally{
if (connectionBad) {
pool.evict(c);
} else {
pool.return(c);
}
}
Вопрос в том, как сделать этот стандартный код проще, чтобы можно было делать что-то вроде:
Код: Выделить всё
getConnectionAndDoWork(pool, business-logic-code)
где можно подключить свою бизнес-логику и не повторять повсюду один и тот же код управления соединением. Один из способов — создать интерфейс для кода бизнес-логики, например doWorkWithConnection, который принимает соединение и выполняет некоторую работу. Однако это ограничивает то, какой код бизнес-логики должен возвращать;
есть ли лучший способ сделать это на Java?
Подробнее здесь:
https://stackoverflow.com/questions/115 ... management