2016-11-03 3 views
1

@Stateless 대신 @RequestScoped이라는 주석이 달린 클래스를 사용하여 비즈니스 로직을 작성할 수 있는지 알고 싶습니다.Stateless EJB 대신 @RequestScoped 빈에 비즈니스 로직을 작성할 수 있습니까?

일부 비즈니스 로직이 있고 데이터베이스 코드가없는 EJBs이 있습니다. 내가 이것을 EJB으로 선언 한 유일한 이유는 interceptors입니다. 트랜잭션 관리가 필요 없기 때문에 @RequestScoped으로 선언하는 것이 더 합리적이라고 생각합니다.

누구든지 제안 할 수 있습니까?

+1

나는 REST 서비스를 설계하고 있다고 가정한다. 인터셉터에서 어떤 비즈니스 로직을 사용할 것인지 알지 못하지만 나머지 서비스에 바인딩 된 표준 JEE 필터를 사용하면 동일한 결과를 얻을 수 있습니다. 요청/응답을 조작하는 또 다른 방법은 REST에 대한 내 생각이 옳다면 MessageBodyReader와 MessageBodyWriter를 사용하는 것입니다. – Leonardo

답변

0

사용 @Named와 u는 당신의 비즈니스 로직을 프로그래밍하려면 @RequestScoped는 하나의 HTTP 요청 (모든 요청에 ​​대해 한 번 만들어 @RequestScoped로 정의하고 요청을 통해 그것을 주입 모든 빈에 의해 공유되는 객체)에 따라 달라집니다 . 그러나 UserTransaction의 경우 Datasource, 나사 안전 및 인셉터가 문제가 될 것이므로 @stateless을 붙이십시오.

관련 문제