1) Стоит обратить внимание на использование Spring 4 с конфигурацией через аннотации (гораздо удобнее кучи XML файлов конфигурации), Spring Security, JPA + Hibernate для работы с базой, Maven для сборки проекта и т.д. И! не забываем писать тесты. В вопросе еще не раскрыт уровень знания Java.
2) Поддержка Spring в Intellij Idea только в платной версии, но есть триальный период в 30 дней и EAP версия :)
Возьми готовый jhipster генератор - и изучи что он делает при генерации кода для твоей сущности -- получишь PostgreSQL (или любая другая БД или даже MongoDB) + Spring DATA JPA + (возможно отключить из конфигурации Spring DATA Elasticsearch для полнотекствого поиска) + Spring MVC + AngularJS на стороне клиента.
Достаточно сгенерировать только пару сущностей что бы посмотреть на все в сборе ( с учетом внешних ключей) - генерируется достаточно неплохой код и, по-моему, его можно использовать для обучения.
После чего можно уже будет и создавать свое с чистого листа - выбрасывая ненужное на данном этапе - или перенастраивать то что было сгенерировано. Это уж кому как нравится.