Spring RMI 简单使用(2)

用Spring的RMI支持,你可以通过RMI基础设施透明的暴露你的服务。设置好Spring的RMI支持后,你会看到一个和远程EJB接口类似的配置,只是没有对安全上下文传递和远程事务传递的标准支持。这可大大简化rmi的使用

1.使用RmiServiceExporter暴露服务

使用RmiServiceExporter,我们可以把对象的接口暴露成RMI对象。可以使用 RmiProxyFactoryBean 或者在传统RMI服务中使用普通RMI来访问该接口。RmiServiceExporter 显式地支持使用RMI调用器暴露任何非RMI的服务。当然,我们首先需要在Spring容器中设置我们的服务:

新建一个userDao的接口 及userDaoImpl实现类

userDao

package com.soyen.dao;

public interface UserDao {
 public String login(String username,String password);
}

UserDaoImpl

package com.soyen.dao.impl;

import com.soyen.dao.UserDao;

public class UserDaoImpl implements UserDao {

public String login(String username, String password) {
  return "你好" + username + "你的密码为:" + password;
 }

}


 

现将服务端配置代码贴上

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans ">
 <bean></bean>
  <!-- 将类暴露成为一个RMI服务 -->
 <bean> 
    <!-- 服务类 -->
  <property ref="userDao" /> 
    <!-- 服务名 -->
  <property value="UserService" /> 
        <!-- 服务接口 -->
  <property value="com.soyen.dao.UserDao" />
        <!-- 服务端口默认为1199-->
  <property value="1091" />
 </bean>
</beans>


客户端采用java控制台程序测试,须将服务端接口提供给客户端
 
import org.springframework.remoting.rmi.RmiProxyFactoryBean;

import com.soyen.dao.UserDao;


public class TestRmi {
public static void main(String[] args) {
 
 
  RmiProxyFactoryBean factory = new RmiProxyFactoryBean(); 
        factory.setServiceInterface(UserDao.class); 
        factory.setServiceUrl("rmi://localhost:1091/UserService"); 
        factory.afterPropertiesSet(); 
         
        UserDao userService = (UserDao)factory.getObject(); 
        String msg=userService.login("zhangsan", "12344"); 
        System.out.println(msg);     
     


 }

}

执行完毕则可调用
 
若客户端采用配置方式则可使用一下配置
 
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans ">
 <bean> 
    <property value="com.soyen.dao.UserDao" ></property>
    <property value="rmi://localhost:1091/UserService"></property>
 </bean>
</beans>

Spring 的详细介绍请点这里
Spring 的下载地址请点这里

相关阅读

Spring中如何配置Hibernate事务

Struts2整合Spring方法及原理

基于 Spring 设计并实现 RESTful Web Services

Spring-3.2.4 + Quartz-2.2.0集成实例

使用 Spring 进行单元测试

运用Spring注解实现Netty服务器端UDP应用程序

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/388a7cc6da9ad2b5418ce43b8aa8a8ca.html