Spring第七天远程调用

C++中为什么要引入引用变量? C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。 阅读详情

 RMI远程调用
Rmi_Spring (不用在接口中继承Remote,在这里关联起来就可以了) 3个地方设置就可以了
1. config.xml(关联RMI的设置)
   <bean id="userService" class="example.chapter8.UserServiceImpl" />  实体类关联 
    <bean id="rmiService" class="org.springframework.remoting.rmi.RmiServiceExporter">
        <property name="serviceName" value="UserService" /> 客户使用
        <property name="service" ref="userService" />  Rmi与类关联
        <property name="serviceInterface" value="example.chapter8.UserService" />  接口关联
        <property name="registryPort" value="1099" /> 客户使用
    </bean>

2 .启动RMI
public class Main {
    public static void main(String[] args) {
        new ClassPathXmlApplicationContext("config.xml");
    }
}

3.客户端使用
package example.chapter8.client;
import org.springframework.remoting.rmi.RmiProxyFactoryBean;
import example.chapter8.UserService;
public class Client {
    public static void main(String[] args) throws Exception {
        RmiProxyFactoryBean factory = new RmiProxyFactoryBean();
        factory.setServiceInterface(UserService.class);
        factory.setServiceUrl("rmi://localhost:1099/UserService");
        factory.afterPropertiesSet();
        UserService userService = (UserService)factory.getObject();
        userService.create("test", "password");
        System.out.println(userService.login("test", "password"));
        try {
            userService.login("test", "bad-password");
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

 

 

 

 

RMI最大的缺点是使用特定的JRMP(Java Remote Method Protocol,Java远程
方法协议)二进制协议,很难穿透防火墙,公适合在企业内部网中使用。如果需要防火墙调用,则HTTP协议几乎唯一的选择.
Spring支持三种Http远程调用 :Hessian,Burlap,Http Invoker.
Hessian和Burlap这两种集成在Resin服务器内部,可以直接使用.
Hessian是一个二进制协议(效率高,但很难被读懂),而Burlap是一个基于XML的协议。其他语言只要能解析XML,就可以使用Bulap和Java程序通信.这两种协议是私有协议,并没有成为标准,因此仅适合Java系统内跨越防火墙进行调用.


Http协议的远程调用 (以Hessian为例,其他的使用方法基本类似)
服务端(包含TimeService接口,TimeServiceImpl类)
1关联
  <bean id="timeService" class="example.chapter8.TimeServiceImpl" />
    <bean name="/HessianService" class="org.springframework.remoting.caucho.HessianServiceExporter">
        <property name="service" ref="timeService" />
        <property name="serviceInterface" value="example.chapter8.TimeService" />
    </bean>

web.xml(url样式定义成/remote/*)
<web-app>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/remote/*</url-pattern>
    </servlet-mapping>
</web-app>
2.没有启动RMI这步骤了吗?(Http协议的远程调用没有这个步骤,这个又不是RMI远程调用。)
客户端
2 使用 config.xml
    <bean id="hessianService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
        <property name="serviceUrl" value="http://localhost:8080/remote/HessianService" />  //由服务器端的样式定义和Bean 的名字组成。
        <property name="serviceInterface" value="example.chapter8.TimeService"/>
    </bean>

TimeService service = (TimeService)context.getBean("hessianService");
service.getTime();

 

 

 

Web服务
一   就是一种能够实现跨平台远程调用技术标准,即应用程序通过向外界暴露一个可以通过Web来远程调用的API接口,客户端就可以调用这个服务接口来实现相应的功能。
  可以把Web服务看成是基于因特网的远程调用,有了Web服务,Web网站和web网站之间就不再是简单地用链接连起来,而是可以互相调用的Web应用程序。
web服务是一种面向服务架构技术,由于XML是一咱平台无关的描述语言,因此,在Web服务中,XML被用来描述如何传递数据。这样,调用双方就可以是任意的异构平台。

二 Web服务大致可以应用在以下领域:
1.面向企业的Web服务,包括企业内部的各种ERP系统和企业间合作伙伴的系统对接。由于大企业内部或企业之间常常中异构平台,因此,采用Web服务来实现系统集成非常合适。
2.面向消费的Web服务,尤其是B2C站点。通过Web服务,第三方桌面应用程序就可以为用户提供更方便的服务,例如,个人理财软件可以通过Web服务获得最新的股票价格。
3.面向终端设备的Web服务。包括手机,PDA等各种移动终端,可以通过服务轻松实现天气预报,酒店预订等服务。

三 实现:
web服务调用者      <-------(获取WDSL文件)      WSDL文件     <------- (发布WSDL文件)      Web服务发布者
                               ------------------------------------------------------------->(发送SOAP请求)
                                 (返回SOAP请求)    <---------------------------------------------------------

WSDL文件,即Web Services Description Language ,这个XML文件定义了调用Web服务的所有信息,包括所有的方法名称,参数类型,返回类型和数据类型的映射等。

Web服务的调用者只要该WSDL文件,就可以根据WSDL文件通过相应的工具生成客户端支持类。

四为了在Java中实现Web服务,还必须获得一个具体的实现。Axis和XFire都是实现了完整的Web服
务协议的库。可以用于访问和发布Web服务。

1.Axis(在有网络的情况下练习CallAmozonWs,看一下WSDL文件的构成)
调用Web服务,要知道WSDL文件的URL(包含调用Web服务的全部信息),调用前还要使用
WSDL2Java来根据WSDl自动生成客户端支持类.

总结:仅在企业内部网中使用,并且通信双方都是Java平台,可以考虑使用RMI,如查需要通过因特网调用,或者通信双方是异构系统,则Web服务几乎是唯一的选择。

 

 


 

YOLOv11改进策略【SPPF】| 将特征金字塔池化修改为:SPPCSPC,提升模型的特征提取能力和计算效率。 本文记录的是。YOLOv7中的SPPCSPC(Spatial Pyramid Pooling Cross Stage Partial Connections)模块是一种结合了(SPP)和(CSP)的改进结构,本文将其添加到YOLOv11中, 阅读详情

相关推荐

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 356

Spring第七天学习笔记

Spring第七天学习笔记Spring事务处理Spring与事务处理Spring事务处理的设计概览Spring声明式事务处理实现分析Spring事务处理的设计与实现事务的创建事务的挂起事务的提交事务的回滚Spring事务处理器的设计与实现DataSourceTransactionManager的实现HibernateTransactionManager的实现 Spring事务处理 Spring与事...

Mr. TKY的博客 154

西门子TM PosInput1模块SSI编码器配置与速度测量实战

本文详细介绍了西门子TM PosInput1模块配置SSI绝对值编码器的实战步骤,涵盖硬件组态、工艺对象配置、编程实现与速度测量优化。重点解析了高分辨率编码器的数值处理技巧和常见调试问题,帮助工程师快速实现高精度位置与速度检测,提升自动化项目效率。

emacs5lisp的博客 340

Spring第七天(AOP)

注:切入点定义依托一个不具有实际意义的方法进行,即无参数,无返回值,方法体无实际逻辑@Component@Aspect。

Cary_cacb的博客 1081

鱼眼相机矫正实战:除了棋盘格,试试横向展开和经纬度法(OpenCV4/C++实现对比)

本文对比了鱼眼相机矫正的三种主流方法:棋盘格标定法、横向展开法和经纬度法,通过OpenCV4/C++实战代码解析,帮助开发者在自动驾驶、VR全景拼接和安防监控等场景中选择最适合的技术方案。重点分析了各方法的精度、处理速度和适用场景,为工程实践提供实用指导。

weixin_29032489的博客 284

SAP特殊库存全解析:供应商寄售、客户寄售、分包与项目库存说明

客户寄售库存(Customer Consignment)是企业将物料存放于客户处,客户实际领用后才确认销售收入。这种模式能缩短交货周期、提高客户满意度,但需严格跟踪寄售库存的数量与状态。

我小时候很黑的博客 822

学习Spring(第七天)

一、Spring IoC的初始化过程: Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理,如下图所示: 二、Spring AOP 和 AspectJ AOP 有什么区别? Spring AOP 属于运行时增强

keeper42的博客 275

14、脑肿瘤复发预测与转移瘤跟踪的自动化方法

本文介绍两种脑肿瘤相关自动化方法:一种用于预测胶质瘤切除术后的肿瘤复发位置,结合图像配准、静态模型和动态模拟模型,利用患者的DTI数据进行预测;另一种用于在纵向扫描中跟踪转移性脑肿瘤,通过联合求解配准参数估计和图像变化标记问题,提高肿瘤跟踪的准确性和效率。文章同时分析了两种方法的优势与挑战,并提出了未来研究方向,旨在为脑肿瘤的诊断和治疗提供更可靠的工具。

defi6farmer的博客 120

Spring Cloud第七天

服务网关:(gateway) 三大核心概念:Route(路由)、Predicate(断言)、Filter(过滤) ・ Filter(过滤):指定是Spring框架中GetwayFilter的实例,使用过滤器,可以在请求被路由前或者之后请求进行修改。 ・ Predicate(断言):开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言想匹配则进行路由。 ・ Route(路由):是构建网关的基础模块,它由ID、URI、一系列的断言和过滤器组成 ,如果断言为true则则匹配该路由。 ・

PJC的博客 198

每周技巧tc 问题处理技巧Teamcenter

(内部)Dataset和Tool相关之2.1——Tool轮询Contents Type和Type Name-赖良顺.docx。(内部)Dataset和Tool相关之3.2——编写Batch和Perl为客户端自动注册相关内容-赖良顺.docx。(内部)Dataset和Tool相关之1.1——Tools和Datasets参数定义-赖良顺.docx。(内部)Dataset和Tool相关之1.2——相关首选项定义及修改-赖良顺.docx。(内部)Dataset和Tool相关之0——概述-赖良顺.docx。

TC技术专栏 1230

YOLOv8模型轻量化实战:基于稀疏化剪枝与L1正则化的高效目标检测模型优化-附源码

本文提出一种YOLOv8轻量化方案,通过L1正则化稀疏化训练和动态阈值通道剪枝,在边缘计算场景中优化模型性能。方案分三步:首先通过L1正则诱导权重稀疏化并动态衰减系数;然后基于BN层权重统计进行通道剪枝,保留80%关键通道;最后对剪枝模型微调恢复精度。在COCO128数据集上验证,模型体积压缩40%,推理速度提升2.3倍,mAP仅下降0.4%,实现了精度与效率的平衡。该方案为移动端部署提供了可行的轻量化技术路径。

m0_64661770的博客 479

Spring第七天(Spring事务)

事务作用:在数据层保障一系列的数据库操作同操作同成功同失败Spring事务作用:在数据层或保障一系列的数据库操作同成功同失败。

Cary_cacb的博客 579

【RT-DETR涨点改进】全网独家首发、特征融合改进篇 | AAAI 2026 | 引入CDEM交叉动态增强模块,双向引导和融合,在低光图像增强中有效提升了图像的亮度,提升小目标和暗目标的检测准确率

本文提出了一种基于CDEM(交叉动态增强模块)改进的rtdetr网络模型,有效提升了在低光和复杂环境下的目标检测性能。CDEM模块通过动态增强亮度与色彩特征,改善图像输入质量,增强细节和对比度。该模块具有轻量级结构,易于集成到现有模型中,能够显著提升小目标和暗目标的检测准确率与鲁棒性。文章详细介绍了CDEM模块的结构原理、实现方法,并提供了完整的代码实现和配置指南,包括三种改进版本的YAML配置文件。实验结果表明,该方法在图像增强和目标检测任务中均取得了优异性能。

Ai缝合怪、助力小伙伴高效发论文 144

spring原理(第七天)

单例注入其它 scope 的四种解决方法@Lazy解决方法虽然不同,但理念上殊途同归: 都是推迟其它 scope bean 的获取。

GD2604279407的博客 557

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

第七天 Spring-security 登录的验证 授权

Spring-Security: 概述: Spring-Security ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200314095813880.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L...

weixin_44629340的博客 386

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SSM第七天 spring集成Junit

spring集成Junit 问题1:在测试的时候还要创建spring容器,然后使用getBean进行测试,然而,测试人员不一定能写出这些, 思考:能不能直接通过spring的DI获得想要测试的类 问题2: 我们直接把创建容器的代码去掉,然后把要测试的类提出去用***@Autowired*** 注入,但是,此时junit的测试方法执行时, 并不会创建spring的容器,所以此时没有spr...

climbxu的码农日志 196

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Spring Boot 学习第七天:动态代理机制与Spring AOP 备份

在Java的世界中,实现AOP的主流方式是采用动态代理机制,这点对于Spring AOP也一样。代理机制的主要目的就是为其他对象提供一种dialing以控制对当前对象的访问,用于消除或缓解直接访问对象带来的问题。通过这种手段,一个对象就代表另一个对象的部分功能,我们创建包含当前对象的对象,以便向外界提供功能接口。本篇将关注目前主流的动态代理实现技术,并分析Spring AOP中的代理实现方式。在Spring中,采用的代理机制有两种,即JDK动态代理和CGLIB动态代理。

geminigoth的博客 1112

【苍穹外卖 | 第七天】

使用Redis缓存数据来处理小程序端的大量访问即高并发,因为Redis存储的内容在内存中.

一个coder的博客 1万+

Spring框架学习第七天

文章目录SpringMVC + Ajax 技术Ajax异步的处理同步处理总结使用@ResponseBody常见错误验证码校验自动根据浏览器请求头`Content-Language`国际化按用户选择的语言环境显示文字运行效果图 SpringMVC + Ajax 技术 Ajax Ajax技术特点:异步请求、局部刷新 同步模式:请求1-&amp;gt;响应1-&amp;gt;请求2-&amp;gt;响应2 异步模式:请求1-&amp;...

gsdad_white的博客 611

苍穹外卖第七天和第八天

今天放假了,上午有点摆,一直玩,然后下午两点才开始学,昨天的项目日记今天一起补上。

uybji的博客 1032

spring4学习日记——第七天

今天主要学习了hibernate和spring的整合,感觉学了这么走,终于见效了。 其次是structs和spring的整合,实现了IOC容器的初始化,网页调用spring。 我觉得我得好好复习哈spring的AOP框架,我要把这个掌握得透彻一些。

克己的博客 311

Spring源码学习第七天==>解析配置注解类与BPP

关键词: Spring解析配置类注解Bean Spring注册Bean后置增强器(BPP) Spring消息资源和监听器的初始化 一:Spring解析配置类注解Bean==>ConfigurationClassPostProcessor 前言:Spring注册Bean可以是XML形式的也可以是注解修饰的。该小节介绍的是ConfigurationClassPostProcessor类是如何将被注解修饰的配置类注册进Bean 1.Configur...

lewismago的博客 621

用Spring Boot+Vue做微人事项目第七天

前两天做了微人事登录的前端页面和后端接口,第三天则实现了前后端接口的对接,输入正确的用户名和密码之后,成功的跳转到home页。第四天做了Home页的Title制作和下拉菜单,下拉菜单有三个选项,个人中心、设置和注销登录,还做了注销登录,点击注销登录会出现提示:“此操作将注销登录,是否继续”,点是就重新跳转到登录页面,第五天做的是左边的导航菜单,第六天是做的服务端菜单接口的设计,现在是Vuex的介...

凌枫ozo的博客 1658

MyBatis第七天学习笔记——spring、springboot集成mybatis

spring集成mybatis MyBatis-Spring这个类库中的类,Spring将会加载必要的MyBatis工厂类和Session类。 这个类库也提供了一个简单的方式将MyBatis数据映射器和 SqlSession 注入到业务层的 bean 中,而且也可以处理事务, 翻译 MyBatis 的异常到 Spring的DataAccessException 数据访问异常中 配置Mapper...

抛弃幻想,准备斗争 471

Spring动态代理详解、AOP编程 打卡第七天

Spring动态代理

qq_52677473的博客 274

Java六道面试分享、第七天坚持打卡

今天的主题是关于面试题解答,求职是在每个技术人员的生涯中都要经历多次。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,所以如果大家觉得这种模式不错的,欢迎大...

JAVA高级架构 303
上一篇: 《Spring核心技术与最佳实践》第六天 Spring事务管理,
下一篇: Spring第九章邮件服务,任务调试和Java消息服务.
facepp
博客等级 码龄22年 342粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值