Wicket, Spring и Hibernate - в значительной степени стандартный стек для приложений Wicket. Или, скорее, скажем, что любой веб-фреймворк, Spring и Hibernate в значительной степени является стандартным стеком для любого веб-фреймворка.
Что касается Wicket, добавление объектов с использованием @SpringBean
внутри компонентов - это очень приятно иметь возможность. Кроме того, OpenSessionInViewFilter управляет сессиями Hibernate для вас (в то время как Hibernate сам заботится о соединениях).
Поэтому я действительно рекомендую вам взглянуть на Spring и Hibernate - оба из них не требуют аннотаций, но в большинстве случаев их проще использовать, чем файлы конфигурации (обычно XML).
Если вы все еще не хотите использовать Spring или Hibernate, я бы посоветовал вам взглянуть на OpenSessionInViewFilter и создать нечто подобное самостоятельно: создать соединение для каждого запроса, использовать его во время одного запроса, закрыть в конце. Так как это не очень хорошо работает, вы можете предпочесть получать соединения из пула, в который вы возвращаете его в конце запроса. Но вместо того, чтобы писать этот код, вы уже можете внедрять bean-компоненты в ваши компоненты;)