GWT 2.5.1 + Spring 3.2 + Hibernate 4 프로젝트에서 작업하고 있습니다. Spring-Hibernate 애플리케이션은 이미 작동하고 있으며 일반적인 Service/Dao 레이어를 가지고있다. 트랜잭션은 서비스 메소드에서 @Transactional 어노테이션을 통해 Spring에 의해 처리됩니다.GWT RequestFactory 및 Spring 관리 트랜잭션
GWT RequestFactory를 사용하여 GWT 레이어를 추가하려고합니다. 특히 RequestFactory와 Spring 관리 트랜잭션이 함께 작동하는 방식을 이해하지 못합니다.
RequestFactory는 실제로 요청한 서비스 메소드를 호출하기 전후에 많은 쿼리 (Locator 클래스의 find/getId 메소드 참조)를 수행하는 것처럼 보입니다. BTW : Locator는 이러한 쿼리를 수행하기 위해 Spring 서비스 빈에 의존해야합니까? 나는 그렇게 생각한다.
이것은 RequestFactory가 다른 트랜잭션에서 일을하는 것을 의미하며 이는 나쁘다. 나는 Hibernate 캐시를 이용하기 위해서 같은 트랜잭션 내에서 전체 요청을 원한다. (이것은 단지 주된 이유이다). ...
내가 @Transactional 주석 어떻게 든 GWT 서버 계층까지 이동해야한다고 생각하지만,이 일을하기 위해 Spring 빈에 있어야합니다, 그래서
무엇 GWT RequestFactory를 통합 할 수있는 가장 좋은 방법이고 스프링 관리 트랜잭션?
그리고 ServiceLocator 그 서비스는 봄부터로드된다. –
감사합니다. 올바르게 작동합니다. RequestFactory-Spring 통합에 관해서 ... 몇 가지 작업 솔루션을 찾았습니다 : 1) http://jsinghfoss.tumblr.com/post/18216239637/gwt-2-2-0-requestfactory-spring -3-0-x- 통합 2) https://groups.google.com/forum/#!msg/google-web-toolkit/IQInsMnPtT0/PNU41isLLnUJ (두 번째 게시글) 확실하지 않습니다. 보다 나은. 두 번째 것은 더 간단하지만 매번 ApplicationContext를 가져와야합니다. – Ivan
어쨌든 기본적인 아이디어는 다음과 같습니다. 1) 맞춤 ServiceLayerDecorator가 GWT의 RequestFactoryServlet 생성자에 제공됩니다. 2) 데코레이터는 Spring 관리 빈인 EntityLocators (Locator 인터페이스)와 ServiceLocators를 검색한다. 3) ServiceLocator가 1 개만 필요합니다. Spring 서비스 빈 검색에 대한 책임. 4) 도메인 엔티티의 구현 방법에 따라 적어도 하나의 EntityLocator가 필요합니다. 5) EntityLocatord는 JPA EntityManager (또는 Hiberante SessionFactory)를 직접 사용합니다. ... 위 필터를 추가하면 모든 항목이 삭제됩니다. :) – Ivan