저는 Java EE 6을 처음 접했고 Spring보다 새로운 버전입니다. 필자는 EclipseLink JPA EntityManager를 삽입하려고 시도하고 있으며 이것을 달성하는 여러 가지 방법을 모색 중이다. 글래스 피쉬와 더비를 사용하고 있습니다. 아래 예제에서 EntityManager를 간단하게 서블릿이나 컨트롤러에 삽입하려고합니다. 실제로는 EntityManager를 래핑하는 DAO 클래스가 있습니다. 다음 스프링 대 Java EE 6을 사용하여 JPA EntityManager 삽입
자바 EE 6에서, I는 서블릿을 정의 할 수@WebServlet(urlPatterns="/app/*")
public class FrontController extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceContext
private EntityManager entityManager;
}
EntityManager를 올바르게 추가 구성으로 주입된다.
이제 스프링을 이상적으로 주석을 통해 사용하고 싶습니다. 다음과 같이 현재, 나는 컨트롤러를 정의 할 수 있습니다 : 봄 내가 내 응용 프로그램 컨텍스트 XML 파일에 다음 지시문을 포함해야 제대로 일을 배선하기 위해서는
@Controller
@RequestMapping("/testurl.htm")
public class ExampleController {
private EntityManager em;
@PersistenceContext
public void setEntityManager(EntityManager em) {
this.em = em;
}
}
:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myPU"/>
</bean>
하는 경우 나는 위의 조각을 포함하지 않는, 내가 배포에 대한 예외를 얻을 : org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 0
이 this을 읽고서 나는 인상이었다 나는 위의 XML 조각을 필요가 없을 것입니다 . 위의 스 니펫이 항상 요구되는지 누구든지 확인할 수 있습니까?
또 다른 접근 방법이 있습니까? EntityManager가 Java EE 컨테이너에서 FrontController 서블릿에 성공적으로 삽입되면이 동일한 EntityManager를 Spring 응용 프로그램 컨텍스트에 삽입하고 다른 Spring Bean에서 어떻게 사용할 수 있습니까?
는 서비스 계층으로 그들을하지 주입하여 컨트롤러 – NimChimpsky