Mislim da bi bilo pametno koristiti Spring kao middle framework kojim bi se lako integrisali Hibernate kao back-end framework i neki front-end framework.
Uz sve ostale benefite koje Spring donosi, naravno.
Spring + Hibernate:
https://www.hibernate.org/441.html
Ovde se koristi JPA konfiguracija (persistence.xml), a ne Hibernate (hibernate.cfg.xml), a Hibernate je naveden kao provider u JPA konfiguraciji.
Dodatno, za osnovnu konfiguraciju, gde se ne koristi Hibernate Search, izbaciti iz konfiguracije bean MBeanExporter.
U servisnim klasama, koje su deklarisane kao Spring beanovi, se po potrebi koristi transactional anotacija koju Spring automatski prepoznaje:
Code:
@org.springframework.transaction.annotation.Transactional
public class BaseService implements IBaseService {...
U DAO klasama, koje rade sa Hibernate mapiranim data modelom a takodje su Spring beanovi, Spring automatski ubacuje JPA persistence context:
Code:
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
Spring + web frameworks:
http://static.springframework..../reference/webintegration.html
Ovde je data integracija sa Struts 1.1, kao i za Faces koju sam i ja koristio.
Za Struts2 probaj da izvuces potrebnu i dovoljnu konfiguraciju sa
http://struts.apache.org/2.x/docs/struts-2-spring-2-jpa-ajax.html, s tim konkretno nemam prakticnog iskustva.
Kad se sve sklopi zaista tece fino, s front strane korisnikov zahtev se salje kroz bean/action web frameworka, taj zahtev se delegira kroz Spring beanove klasama koje su persistence context aware (Hibernate mapirane).