原文:http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html
domain model :
public class Account implements Serializable{ private static final long serialVersionUID = 9020521114209538117L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
corresponding services:
public interface AccountService { public void insertAccount(Account account); public List<Account> getAccounts(String name); }
实现类:
public class AccountServiceImpl implements AccountService { public List<Account> getAccounts(String name) { // TODO Auto-generated method stub return null; } public void insertAccount(Account account) { System.out.println("insert Account......"); } }
Exporting the service using the RmiServiceExporter:
<beans> <bean id="accountService" class="com.lmning.AccountServiceImpl"></bean> <bean id="service" class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="serviceName" value="AccountService"></property> <property name="service" ref="accountService"></property> <property name="serviceInterface" value="com.lmning.AccountService"></property> <property name="registryPort" value="1199"></property> </bean> </beans>
Linking in the service at the client:
运行: <bean id="serverAccountService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl" value="rmi://127.0.0.1:1199/AccountService"/> <property name="serviceInterface" value="com.lmning.AccountService"/> </bean>
server:
public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); RmiServiceExporter service = (RmiServiceExporter)ctx.getBean("service"); }
client:
public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); AccountService service = (AccountService)ctx.getBean("serverAccountService"); service.insertAccount(null); }
ok!