2014-10-13 2 views
0

서블릿과 스레드 간의 데이터 교환을 구성하는 가장 쉽고 간단한 방법은 무엇입니까? 그래서 (프로세스) 어떤 프로세스를 관리하는 쓰레드가 있고 상태를 쿼리하고 업데이트 할 수있는 REST 서블릿이 있습니다. 너무 많은 REST 호출을 기대하지는 않을 것입니다. 아마도 초당 하나이므로, synchronized을 사용하여 멀티 스레딩 문제를 피할 수 있습니다.서블릿 REST API 및 스레드 데이터 교환

그 안에 스레드를 실행할 새 빈을 만들 수 있다고 가정합니다. 하지만 어떻게 서블릿을 통해 액세스하고 그들 사이의 일부 공유 개체가? 이 솔루션의 문제점은 무엇입니까?

답변

1

많은 세부 정보를 넣지 않았기 때문에 필요한 정보를 정확히 대답하기가 어렵습니다. 무엇보다도 오래된/좋은 서블릿이 필요한지 결정해야한다. 그렇지 않으면 @RequestMapping 어노테이션으로 컨트롤러의 어딘가에서 기능을 시작할 수있다 (spring mvc를 사용한다면).

세션 스코핑 된 빈을 사용하여 REST 호출간에 상태를 유지할 수 있습니다. ThreadLocal 속성과 혼합하여 사용할 수 있습니다. http://java.dzone.com/articles/painless-introduction-javas-threadlocal-storage 스레드 로컬 설명을 살펴보십시오.

여전히 혼란 스러우면 -이 응용 프로그램이 유지하려고하는 것이 무엇인지 자세히 설명하십시오.

+0

당신은 당연히 포인트를 얻었지만 다른 프로세스를 제어 (모니터)하기 위해 스레드를 사용하고 있으며이 스레드는 REST (클라이언트가되어야 함) 호출을해야합니다. 그래서 긴 수명 프로세스를 시작하고 Servlet과 교환 할 수있는 방법이 있습니다. – Tom

+0

휴식은 @RequestMapping을 통해 수행됩니다. – Tom

+0

스레드를 별도의 클래스로 묶고 @PostConstruct 공용 메소드를 사용하여 스레드를 시작하고 호출을 수행 할 수 있습니다. 스프링 빈은 기본적으로 싱글 톤이므로 PostConstruct는 한 번만 호출되어야합니다. – freakman