Spring, Hibernate, JPA configuration, service and repository (DAO) layer, unit tests