首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring 施用RMI

2012-09-15 
Spring 使用RMISpring使用RMI非常简单,甚至比直接使用RMI还简单。第一:首先定义接口:import java.rmi.Remot

Spring 使用RMI
Spring使用RMI非常简单,甚至比直接使用RMI还简单。

第一:首先定义接口:

import java.rmi.Remote;import java.rmi.RemoteException;import com.zakisoft.test.rmi.vo.User;public interface RmiUserService extends Remote{User login(String username, String password) throws RemoteException;void create(String username, String password) throws RemoteException;}

import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = -3017748605531466285L;private String username;private String password;public User(String username, String password) {this.username = username;this.password = password;}public String getUsername() {return username;}public String getPassword() {return password;}}


第二:实现接口
import java.net.MalformedURLException;import java.rmi.AlreadyBoundException;import java.rmi.Naming;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.server.UnicastRemoteObject;import com.zakisoft.test.rmi.server.UserService;import com.zakisoft.test.rmi.server.UserServiceImpl;import com.zakisoft.test.rmi.vo.User;public class RmiUserServiceImpl extends UnicastRemoteObject implementsRmiUserService {UserService service = new UserServiceImpl();public RmiUserServiceImpl() throws RemoteException {}private static final long serialVersionUID = -7138363701504022490L;public void create(String username, String password) throws RemoteException {service.create(username, password);}public User login(String username, String password) throws RemoteException {return service.login(username, password);}public static void main(String[] args) throws RemoteException, MalformedURLException, AlreadyBoundException {LocateRegistry.createRegistry(1099);Naming.bind("rmi://localhost:1099/UserService", new RmiUserServiceImpl());System.out.print("Service start");}}


第三:在Spring配置文件中配置RMI服务
<bean id="userService" value="UserService"/>    <property name="service" ref="userService"/>    <property name="serviceInterface" value="com.zakisoft.test.rmi.server.UserService"/>    <property name="registryPort" value="1099"/>    </bean>


第四:启动RMI服务
public class SpringStartRmi {public static void main(String[] args) {new ClassPathXmlApplicationContext("zconfig.xml");}}


第五:访问服务
import org.springframework.remoting.rmi.RmiProxyFactoryBean;import com.zakisoft.test.rmi.server.UserService;public class ClientSpringRmi {public static void main(String[] args) {RmiProxyFactoryBean factory = new RmiProxyFactoryBean();factory.setServiceInterface(UserService.class);factory.setServiceUrl("rmi://localhost:1099/UserService");factory.afterPropertiesSet();UserService userService = (UserService)factory.getObject();userService.create("test", "test");System.out.println(userService.login("new_user_01", "new_password_01"));//userService.login("test", "test");}}


第六:源码下载
http://www.zakisoft.com/?p=118

热点排行