JPA, Hibernate, Spring MVC, Maven - Definition


I have many doubts in definitions! My goal is to build an architecture of a system, but the definitions of JPA, HIBERNATE, SPRING MVC, MAVEN, are obscure.

JPA: Nothing is more than a specification (ok)

Hibernate: Persistence Provider, who will implement the JPA specifications.

SPRING MVC: Is it an ORM framework? (I read in some places that yes).

Maven: I do not know.

Thinking about an assembly of an architecture, what communicates with what?

asked by anonymous 24.06.2016 / 01:57

1 answer


Good evening, let's clear up each of these points.

JPA - That's what you said.

Hibernate - That's what you said.

Spring MVC - It is a framework, but not an ORM, in case your ORM would be hibernate itself, Spring MVC acts on the Web layer of your application it will be responsible for managing all the controllers layer of your application, will provide common facilities of MVC frameworks as databinds for your application classes, handle aspects of the http protocol, expose your application's endpoints among other things, another very important thing to be said is that Spring MVC does not work alone, everything revolves around the Spring core which is a container of Beans from your application, and this will provide you with many features, it's kind of hard to go into too much details on this, this alone would be a post the part, but I'll put some references for you to get more information.

Maven Its build tool, with it you can do various tasks, from managing the life cycle of your application through goals, you can also manage dependencies of your application and use plugins to meet specific needs of your application, let's assume for example that when running a goal that is provided by a plugin, you would like to deploy your application on a tomcat server, MAVEN has plugins that have these features. p>

A very interesting image of how the Spring designs architecture is arranged.


I hope to have helped, anything you can ask I reply in the comments the rest.

24.06.2016 / 05:21