Первый вопрос здесь, поэтому, пожалуйста, оставьте меня со мной, если неясно.
В процессе обучения я нахожусь в процессе создания своего рода класса пула соединений jdbc для моего приложения java / jsf.Это просто чтобы поиграть.Я уверен, что есть намного более изощренные способы справиться с этим.
(конечно, я знаю, что есть много очень хороших пулов соединений, но переосмысление колеса для меня - увлекательный способ изучения: -))
@ManagedBean(name = "pooltje", eager = true)
@ApplicationScoped
public class pooltje {
private Integer max_connecties = 10;
private connectie[] pool = new connectie[max_connecties];
public pooltje() {
for (Integer teller = 0; teller < max_connecties; teller++) {
pool[teller] = new connectie();
}
}
public Synchronzed Connection borrow() {
Connection ret_con = null;
while (ret_con == null) {
for (Integer t = 0; t < max_connecties; t++) {
if (pool[t].getUsed() == Boolean.FALSE && ret_con == null) {
ret_con = pool[t].getConn();
pool[t].setUsed(Boolean.TRUE);
}
}
}
return ret_con;
}
public synchronized void giveback(Connection terug) {
for (Integer t = 0; t < max_connecties; t++) {
if (pool[t].getConn() == terug) {
pool[t].setUsed(Boolean.FALSE);
}
}
}
}
Я сделал класс управляемым компонентом с областью приложения, поэтому я знаю, что он будет создан только один раз при запуске приложения.
Мой реальный вопрос: как можноЯ называю метод заимствования и отдачи.Для метода loan () я нашел следующее:
FacesContext fc2 = FacesContext.getCurrentInstance();
Application app = fc2.getApplication();
Connection conn = (Connection) app.evaluateExpressionGet(fc2, "#{pooltje.borrow()}", Connection.class);
Это прекрасно работает, однако я чувствую, что это должно / могло быть проще.По крайней мере, я получаю соединение, переданное обратно.
Для метода giveback () я должен передать переменную (соединение больше не использовать).Как я могу это сделать.
Любые советы / подсказки или указатели приветствуются,
(о ... это все для моего собственного использования, поэтому никакие реальные живые приложения не страдают от моей неспособности:-)) С наилучшими пожеланиями, Мартейн