spring RMI 응용
RMI 는 JDK 1.1 부터 나타 난 API 기능 으로 클 라 이언 트 가 원 격 대상 이 제공 하 는 서 비 스 를 사용 할 때 로 컬 대상 을 어떻게 사용 하 는 지 와 같 습 니 다.그러나 RMI 는 사용 할 때 일련의 복잡 한 절 차 를 밟 아야 합 니 다.예 를 들 어 서비스 인터페이스 가 정 의 될 때 자바 rmi.Remote 인터페이스,서비스 서버 가 실제 작업 을 할 때 자바 rmi.UnicastRemoteObject 분 류 를 계승 해 야 합 니 다.rmic 를 사용 하여 stub 와 skeleton 등 을 만들어 야 합 니 다.
org.springframework.remoting.rmi.RmiServiceExporter 를 통 해 Spring 은 이러한 절 차 를 간소화 하고 실제 적 으로 예 를 들 어 Spring 이 RMI 에서 의 사용 과 간 화 를 파악 하 며 먼저 서비스 대상 의 인 터 페 이 스 를 정의 합 니 다.
package onlyfun.caterpillar;
public interface ISomeService {
public String doSomeService(String some);
public void doOtherService(int other);
}
서비스 대상 의 인 터 페 이 스 는 java.rmi.Remote 인 터 페 이 스 를 계승 하지 않 고 실제 작업 할 때 java.rmi.UnicastRemoteObject 를 계승 하지 않 는 것 을 볼 수 있다.예 를 들 어:
package onlyfun.caterpillar;
public class SomeServiceImpl implements ISomeService {
public String doSomeService(String some) {
return some + " is processed";
}
public void doOtherService(int other) {
// bla.. bla
}
}
, Bean , Spring 、 Bean, 、 RMI , :
br> "http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.remoting.rmi.RmiServiceExporter">
SomeService
onlyfun.caterpillar.ISomeService
간단 합 니 다.org.spring from work.reoting.rmi.RmiServiceExporter 서비스 대상,이름과 대리 할 인 터 페 이 스 를 알려 주면 Spring 이 정의 파일 을 읽 고 Bean 인 스 턴 스 를 생 성 하면 RMI 서비스 가 시 작 됩 니 다.
다음은 클 라 이언 트 가 어떻게 실제 작업 을 해 야 하 는 지 살 펴 보 겠 습 니 다.org.spring from work.reoting.rmi.RmiProxy Factory Bean 을 통 해 서비스의 URL,프 록 시 인 터 페 이 스 를 알려 주면 됩 니 다.마치 로 컬 에서 관리 하 는 서 비 스 를 사용 하 는 것 과 같 습 니 다.예 를 들 어 Bean 정의 파일 은 다음 과 같이 작성 할 수 있 습 니 다.
br> "http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
rmi://localhost/SomeService
onlyfun.caterpillar.ISomeService
다음은 간단 한 클 라 이언 트 가 원 격 서 비 스 를 호출 하 는 예 입 니 다.
....
ApplicationContext context =
new FileSystemXmlApplicationContext("rmi-client.xml");
ISomeService service = (ISomeService) context.getBean("someServiceProxy");
String result = service.doSomeService("Some request");
System.out.println(result);
....
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.