EJB를 사용하여 인터셉터를 사용하는 것이 좋은지 아닌지 알고 싶습니다.EJB를 인터셉터에만 사용하는 경우
@TransactionAttribute(NEVER)
을 사용하여 트랜잭션 관리 기능을 해제 했으므로 필요하지 않은 트랜잭션 관리 기능이 없습니다.
이것이 스프링에서 가능하다는 것을 알고 있습니다. 그러나 나는 여전히 내 생각이 좋은지 알고 싶다.
이것이 잘못된 생각이라면 누구든지 JEE 사양의 일부인 API를 사용하여이 작업을 수행하는 방법을 알려주십시오. JEE API를 사용하여이 작업을 수행 할 수 없다면 Spring을 사용해도 상관 없습니다.
사실 애플리케이션에 로깅 코드가 너무 많아서 요격기가 필요합니다. 요청이 올 때마다 나는 테이블에 레코드를 유지해야하며 거기에는 다른 것들도 있습니다.
P.
저는 EJB가 처음이에요. EJB를 사용하면 트랜잭션 관리 및 인터셉터와 같은 기능을 사용할 수 있습니다.
서비스가 REST 및 SOAP 웹 서비스로 노출되는 애플리케이션이 있습니다. 원격 EJB를 사용하여 원격 서비스로 서비스를 제공 할 계획입니다.
각 서비스에 기록 된 로깅 코드가 있습니다. 로깅 코드는 기본적으로 메서드가 반환되기 전에 테이블에 세부 정보를 기록합니다. 또한 우리는 3pp 웹 서비스를 호출하는 일부 서비스를 제공합니다. 우리는 이러한 세부 사항을 다른 테이블에 기록 할 것입니다. 로깅 코드는 각각의 모든 서비스 메소드에 작성됩니다.
그래서 나는 인터셉터를 도입하고 적절한 인터셉터에 로깅 코드를 옮기는 아이디어를 생각해 냈습니다. 처음에는 두 가지 방법으로 인터셉터를 도입했습니다. 코드가 제대로 작동하고 있으며 이제는 이러한 서비스를 사용하기 위해 모든 서비스를 다시 작성하고 싶습니다.
이제 EJB를 메서드를 가로 채기 위해서만 사용하는 것이 좋은 생각입니다. 인터셉터가 아닌 다른 EJB 기능을 사용하고 싶지 않습니다. 따라서 @TransactionAttribute(NEVER)
으로 거래 관리를 사용 중지했습니다. 내 클래스는
@Stateless
@TransactionAttribute(TransactionAttributeType.NEVER)
public class StudentServiceBean {
@ReportingInterceptor
public Student getStudent(String id) {
}
}
@Stateless
@TransactionAttribute(TransactionAttributeType.NEVER)
public class StudentBackendBean {
@BackendInterceptor
public Student getStudent(String id) {
}
}
아래는
- 내가 트랜잭션 관리의 터닝 옆에 고려해야 할 다른 어떤 일이 있습니까 내 질문입니다 아래 같이 보일 것인가?
- EJB를 사용하여 인터셉터를 사용하는 것이 좋은가요?
- Google 애플리케이션에 개의 서비스가 100 개 포함되어 있기 때문에 애플리케이션 규모는 어떻게됩니까? (확장 성은 사용 가능한 리소스에 따라 을 기반으로합니다.)
우리는 우리의 서비스를 원격 ejbs로 공개 할 예정이므로 필터를 사용할 수 없습니다. 필터는 원격 ejb 호출을 인터셉트 할 수 없기 때문에 필자는 필터를 사용하고 싶지 않습니다.
누구나 여기 조명을 비출 수 있습니까? –
누군가가 빛을 비출 수 있습니까? –
잘 이해한다면 EJB를 사용하여 로그 레이어를 만들고 싶습니다. AFAIK, 인터셉터는 EJB (예 : 세션 빈 (Session Beans) 및 메시지 구동 콩 (Message-Driven Beans))를 인터셉트 할 수 있으므로 "인터셉터 만 사용하는 ejb"에 대해 이해하지 못합니다. 더 자세한 정보를 제공 할 수 있습니까? – Jaumzera