Spring в качестве DI контейнера и прочими фишками (например очень важная вещь Spring Security). В качестве библиотеки доступа к данным(бд) предлагаю использовать MyBatis. Это нечто среднее между голым Jdbc (его шаблонным кодом и непонятной иерархией эксепшенов) и Hibernate (который лишь на ранних этапах такой удобный и красивый. Но сложность поддержки кода со временем растет очень быстро и никто не отменял n+1 запрос).
Чтобы не париться с тонной конфигураций можно взять Spring boot в комплект.