发表于: 2018-01-04 21:56:56
1 464
今天完成的事情:
把任务八需要的功能在本地实现了。
这个需要分布式访问,其实就是把service层和controller层分离开,到不同的java程序中。
然后实现本地和远程的通信。
我这边先是看了个demo。然后自己尝试做了个通讯用的小东西,实验了能够输出。
然后把之前任务的东西拿出来修改。
先看修改的服务端:
//我这边的都是直接在xml中配置的东西。
<bean name="rmiserver" class="com.service.impl.StudentServiceImpl"/>//指定接口实现类
<bean name="serverTest" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service" ref="rmiserver"/>
<property name="serviceName" value="serverRmiTest"/>
<property name="serviceInterface" value="com.service.StudentService"/>//指定接口
<property name="registryPort" value="1021"/>//指定服务的端口</bean>
//然后贴一下项目结构:
我这边是把controller层全部删除了。保留了service和service实现类 以及dao层 还有domain
然后写了一个主方法开启服务:
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-mybatis.xml");
context.getBean("serverTest");
}//然后接下来是客户端:
还是先贴一下项目结构:
这边我是删除了service及其实现类
//这个是客户端的配置
<bean name="clentrmi" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://127.0.0.1:1021/serverRmiTest"/>
<property name="serviceInterface" value="com.service.StudentService"/>
</bean>//加载接口类的对象 其实就是使用服务端的接口
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-mybatis.xml");
StudentService studentService = (StudentService) context.getBean("clentrmi");
![]()
上面是效果。
这个是服务端运行过后打出的日志。
今天还讲了小课堂,给大家普及了一波端口的东西。
明天计划的事情:
明天把服务部署到服务器上。
遇到的问题:
一开始忘记序列化了,看了哈报错,改过来了。
收获:
初步学习了这种分布式的架构。
评论