1

이러한 의문에 대해 답변 할 수있는 사람에게 감사드립니다.J2EE 응용 프로그램 서버가 단일 WebService 호출을 제공하는 방법

프로젝트 코딩 세션 중에 나는 의심스러워했다.

의심되는 점은 J2EE Application Server가 단일 WebService 호출을 제공하는 방식에 대해 제목이 암시하는 바입니다.

클라이언트가 WS를 호출하면 J2EE AS가 새 스레드를 작성하여 서비스를 제공합니다. WS 구현에 대해 여러 번 동시에 호출하는 것에 대해 걱정할 필요가 없습니다. 맞습니까? (Java의 연산과 메소드)

또 다른 의심의 여지가있는 것은 @Autowired (기본값은 싱글 톤 인스턴스 화)입니다.

웹 응용 프로그램에서 일반적인 방법으로 스프링 컨텍스트를 만들고 있는데 web.xml에서 ContextLoaderListener Spring 클래스를 사용하여 context-spring-xml 구성 파일을 참조하는 일반적인 태그를 넣습니다. 예를 들어 :이 경우

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     classpath:spring-conf/spring-context.xml 
    </param-value> 
</context-param> 

, 나는 전체 Application Server의 단일 인스턴스를했습니다 (단독으로) @Autowired 때마다 콩을 검색 하시나요? 또는 WS 호출이 만들어 질 때마다 스레드가 생성되고 단일 스레드는 spring xml 구성 파일에 정의 된 모든 빈의 단일 인스턴스를 갖습니다.

ServiceImplementation 클래스가 싱글 톤으로 관리되는 스프링 빈이라는 것을 생각해 봅시다.

우리는 ESB 서비스 SpringeroutBuilder 클래스로서 소비자를 노출시키는 데 Apache Camel을 사용합니다.

미리 답변 해 주셔서 감사합니다.

A. 레티로 전화가 클라이언트에 의해 이루어집니다

답변

0

에서, J2EE AS는 서비스를 제공하기 위해 새로운 스레드를 생성? WS 구현에 대해 여러 번 동시에 호출하는 것에 대해 걱정할 필요가 없습니다. 맞습니까?

오른쪽. 하지만 @Autowired 싱글 톤 스레드 안전성에 대해 걱정해야합니다. 요청/응답 프로세스에서 사용되는 인스턴스 변수가 없어야합니다. 구성/설정 속성 만있을 수 있습니다.

이 경우 @Autowired (싱글 톤) 인 모든 Bean에 대해 전체 Application Server에 대해 하나의 인스턴스가 있습니까?

아니요. 전체 AS에 해당되지는 않습니다. 웹 응용 프로그램의 범위 내에 있습니다. 그것은 서로의 응용 프로그램 격리에 관한 것입니다. 즉, 두 개의 서로 다른 웹 응용 프로그램의 Spring 컨텍스트 (예 : WAR 모두의 web.xml에있는 spring-context.xml)에 정의 된 동일한 @Autowired 클래스 - 각 응용 프로그램의 Spring 컨텍스트에는 자체 싱글 톤이 있습니다.