2009-03-27 2 views

답변

0

본인 스스로 질문해야하는 질문입니다. 두 스레드가 에 액세스하는 방법이 있습니까? DTO? 나는 제정신이 아닌 어떤 건축물도 없다고 생각합니다.

스프링 빈은 일반적으로 싱글 톤 (달리 구성되지 않은 경우)이며 스레드로부터 안전해야합니다.

모든 빈이 매개 변수로 DTO를 수신하면 새로 작성된 DTO를 리턴하고 해당 빈의 모든 클라이언트가 참조를 보관하지 않으므로 DTO가 중요하지 않아야합니다. 적어도 높은 수준의 관점에서.

그러나 Java 동시성에 대해 읽어야합니다. 나는 기회가 있다면 Goetz's book을 권하고 싶습니다.

마지막으로, 나는로드 존슨 (springsource mastermind)이 DTO가 사악하다는 것을 기억합니다. 제발 시간을 좀 보내 "DTO evil"하고 마음을 만드십시오.

+0

나는 DTO가 성가신 줄 알았지 만 그것은 나를 위해 선택된 것이 었습니다. – Martlark

+0

그래서이 질문은 이미 "DTO 악마"에 대한 Google의 두 번째 결과입니다 (적어도 나를 위해)! –

4

간단히 말해서, 그렇습니다. 스프링 빈은 종종 여러 스레드에 의해 공유 될 수 있습니다. Spring Bean의 멤버 변수에 특별한주의를 기울이십시오. 그것들이 변경 가능하다면 그것들을 불변으로 만들거나 (예를 들면 동기화와 함께) 잠금, ThreadLocal 등으로 접근을 조정하십시오.

+0

내 콩이 페이지를지지하고 페이지가 두 번 열리면 콩이 페이지간에 공유되거나 각 페이지 세션마다 생성 된 새 콩이라는 것을 말하고 있습니까? 내가 다시 일할 때 실험해야 할 것입니다. – Martlark

+0

넓게 말하자면, 빈이 공유되는지 여부와 공유 방법에 대해 추론해야합니다. 나는 이것이 때로는 쉽지 않다는 것을 깨닫는다. –

+0

@Julien Chastang. 고마워. 나는 생각한다. – Martlark

관련 문제