科技新闻

JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术

醉酒当歌 提交于 2020-02-27 08:50:40
上篇博客我们详细的聊了《 JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术 》,本篇博客依然是 JavaEE 开发中的内容,我们就来聊一下 SpringMVC 中的自定义消息转发器( HttpMessageConverter )和 SpringMVC 中的文件上传。消息转发器在日常开发中是比较常用的,其可以灵活的将用户发过来的消息按照自定义的格式进行解析,然后将解析的数据映射成Model,下方会给出自定义消息转发器的详细内容。聊完消息转发器,我们还会聊一下 Spring 中MVC的文件上传的操作。详细的内容请看下方介绍。 一、自定义消息转发器 接下来我们将实现自定义消息转发器,在自定义消息转发器时,我们需要基础 Springframework 中的 AbstractHttpMessageConverter 这个抽象类。这个抽象类中就定义着我们自定义消息转发器所需要的方法。我们将这些方法进行重写就好。 1.创建消息转发器的类 下方就是我们创建自定义消息转发器的过程,我们将其命名为 CustomMessageConverter 类,如下所示:    接下来我们就来聊一下 CustomMessageConverter 中的内容,下方代码段就是 CustomMessageConverter 类中的部分内容。在继承类时,我们将泛型指定为 StudentModel 类

博通与苹果达成150亿美元协议,覆盖未来3年苹果产品

五迷三道 提交于 2020-02-27 08:42:24
  据外媒报道,芯片供应商博通(Broadcom)宣布已与苹果公司签署了一份协议,为其提供“高性能的无线组件和模块”,博通表示,这些芯片将在未来 3 年半的时间内用于自 2020 年 1 月份以后发布的苹果产品。   换言之,苹果未来将在 iPhone 9 系列、iPhone 12 系列、iPhone 13 系列、iPhone 14 系列上使用博通产品。   该协议与 2019 年 6 月一份协议有关,两份协议将进一步扩大博通与苹果的关系。   这两份协议的细节还不清楚,但博通估计这两份协议为其带来的收益将超过 150 亿美元(约合人民币 1040 亿元)。   博通当前为苹果提供用于生产主要商品(如 iPhone)的射频前端组件。例如,去年 6 月,该公司签署了一项协议,将其与苹果的 RF 射频组件零件合同延长了两年。   十多年来,这家芯片制造商一直是苹果公司的主要供应商,其提供的组件最早可追溯到 iPhone 3G 等旗舰产品,以协助这些产品连接到蜂窝和 Wi-Fi 网络。除射频部件外,该公司还提供触摸屏控制器和无线充电模块。 来源: oschina 链接: https://my.oschina.net/u/4436414/blog/3161428

frameset框架弹出层

江枫思渺然 提交于 2020-02-27 07:33:06
前段时间做项目,有个功能是消息提醒。 我相信很多大牛都做过。下面来分享我遇到的问题和解决方案。 首先我们的项目是用frameset框架,main代码。 <frameset name="myFrame" cols="85,*" frameborder="no" border="0" framespacing="0"> <frame src="${base}/left.jsp" name="leftFrame" frameborder="no" scrolling="auto" noresize="noresize" id="leftFrame" /> <frame src="${base}/welcome.jsp" name="mainFrame" frameborder="no" scrolling="auto" noresize="noresize" id="mainFrame" /> </frameset> 这样分了左右两个部分。 要求是无论在哪个页面当点击消息图标的时候。能再右下角弹出消息提示。 这个我还真没做过。当时查阅了很多的资料。然后先是找到了jquery的message插件。后来又找到了如何操作父框架的js,然后这个问题就解决了。 因为我left.jsp是菜单导航。它是不变的。所以我就把消息图标放在了left中。 left.jsp页面中的js函数: function

LoxodonFramework

泪湿孤枕 提交于 2020-02-27 06:49:37
上下文(Context) 它可以说就是与当前代码运行相关的一个环境,你能在上下文中 提供了当前运行需要的环境数据或者服务等 ,( 存储服务的介质 ),上下文中包含服务容器,用来存储与当前环境相关的服务, 比如资源加载服务、网络连接服务、配置文件解析服务等 ; 单例 容器注册服务,通过字典进行存储以 < tpyeof ( class ) , new class ( ) > 的方式,也可以注册方法等信息; 服务 在上下文中注册完服务信息,之后对服务进行初始化 中介者模式 :用一个对象来封装一系列对象的交互,不需要显示的对象之间互相引用,从而使其耦合松散。本文通过消息机制来实现该模式 模块之间可以通过定义好的数据结构通过消息进行调用,彼此之间没有强关联,不需要知道会对谁产生影响,只需要消息中心进行处理,获取数据变化时,只需要更改数据结构即可 来源: CSDN 作者: AresNan 链接: https://blog.csdn.net/AresNan/article/details/104422906

架构师必备之常见面试题整理——高性能三十问!

蓝咒 提交于 2020-02-27 06:45:27
大型互联网架构演进过程,架构师应具备的分布式知识,主流分布式架构设计详解 分布式系统 分布式系统是一个由硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。其拥有如下特点 分布性 对等性 并发性 缺乏全局时钟 故障总是会发生 (开心一笑) 分布式协调和分流(二) Zookeeper分布式环境指挥官,Nginx高并发分流进阶实战 应用场景 Zookeeper的功能很强大,应用场景很多,结合我实际工作中使用Dubbo框架的情况,Zookeeper主要是做注册中心用。 基于Dubbo框架开发的提供者、消费者都向Zookeeper注册自己的URL,消费者还能拿到并订阅提供者的注册URL,以便在后续程序的执行中去调用提供者。而提供者发生了变动,也会通过Zookeeper向订阅的消费者发送通知。 Zookeeper有哪几种节点类型 持久节点(PERSISTENT) 所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点——不会因为创建该节点的客户端会话失效而消失。 持久顺序节点(PERSISTENT_SEQUENTIAL) 这类节点的基本特性和上面的节点类型是一致的。额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中

跨文档消息传递 postMessage

孤人 提交于 2020-02-27 05:09:58
一、跨文档消息传递 1. postMessage 发送信息 向当前页面的 <iframe> 元素传送数据 // 接收方window对象.postMessage( "message", "接收方域名" ); var iframeWindow = document.getElementById("myframe").contentWindow; //contentWindow iframeWindow.postMessage("a secret","http://www.wrox.com"); //向内嵌框架发送消息 接收信息 该方法触发接收方 window 对象的 message 事件,并且传递个 onmessage处理程序的 event 包括以下三方面信息 data:postMessage()第一个参数传过来的 message,最好只传字符串 (结合: JSON.stringify(), JSON.parse() ) origin: 发生消息的文档所在的域 source: 发送消息的文档的 window对象 代理 //接收到其他窗口发送过来的信息 window.addEventListener("message", function(event){ event.source.postMessage("收到",event.origin) //向原窗口发送回执 }) 2. 例子 外层

Dll注入技术之消息钩子

扶醉桌前 提交于 2020-02-27 04:00:23
DLL注入技术之消息钩子注入 消息钩子注入原理是利用Windows 系统中SetWindowsHookEx()这个API,他可以拦截目标进程的消息到指定的DLL中导出的函数,利用这个特性,我们可以将DLL注入到指定进程中。主要流程如下图所示 1.准备阶段 需要编写一个DLL,并且显式导出MyMessageProc()函数,主要代码如下: LRESULT WINAPI MyMessageProc( int code, WPARAM wParam, LPARAM lParam) { return CallNextHookEx(NULL, code, wParam, lParam); } 显示导出某个函数需要在.def文件中的EXPORTS填写MyMessageProc(),如下图所示: 2 .HOOK阶段 使用SetWindowsHookEx()之前首先需要将HOOK的DLL 加载到本身的进程中,以此得到DLL的模块句柄,再使用GetProcAddress()得到DLL中显示导出的函数MyMessageProc()的函数地址,最后遍历出待注入进程的线程ID,这样SetWindowsHookEx()就可以利用这些参数进行HOOK了。主要代码如下图所示: //加载DLL到本身进程 hMod = LoadLibrary(pDllName); if (!hMod) return FALSE;

网络编程中几个常见的易错概念

佐手、 提交于 2020-02-27 03:43:24
并行和并发 并发(一个人同时做多件事):指的是在一个时间段内,有几个程序在CPU上运行,但是任意时刻只有一个程序在CPU上运行,这种情景叫并发。(泡茶:洗杯子、放茶叶、烧水) 并行(多个人同时做多件事):指的是任意时刻有多个程序同时运行在多个CPU上,所以最大并行数跟CPU的核心数相同。 同步和异步 (关心被调用方的行为:老板是否在通信中回复结果) 同步和异步关注的是消息通信机制 同步是指代码在调用IO操作时,必须等待IO操作完成才返回的调用方式。 异步是指代码在调用IO操作时不必等待IO操作完成就返回的一种调用方式。 eg:给书店打电话问老板有没有软件测试这本书 老板说:“你先别挂电话,我先去找找。”一会儿,老板找到了,和你说有。这种情景叫同步。 老板说:“你先挂了,等我找一找。” 这种情景叫异步。 异步如何得到结果? 一种是回调,一种是轮询 如果老板找到之后主动打电话给你,这种情况叫回调。 老板不给你回电话,你给老板隔5分钟打一次电话,这种情况叫轮询。 阻塞和非阻塞 (关心程序在等待调用结果时的状态,也就是调用方的状态,个人) 阻塞是指调用方当前的线程被挂起 非阻塞是指调用方线程不会被挂起,而是立即返回做其他事情 eg:在等待老板的结果的过程中,如果你在傻傻等,就是阻塞;如果你在等待的过程中去做其他事情了,比如刷刷微博啥的,就是非阻塞。 阻塞与非阻塞与同步异步没关系 总结:

RabbitMQ学习笔记-RabbitMQ简介

跟風遠走 提交于 2020-02-27 02:46:31
导语   RabbitMQ 是现在比较热门的消息中间件,在互联网行业和传统行业都有大量地使用。消息中间件有很多,RabbitMQ在高可靠、易扩展、高可用等方面都有很大的优势。在学习RabbitMQ的过程中都有所提升。 文章目录 消息中间件介绍 消息中间件作用 解耦 存储 扩展性 流量削峰 可恢复 顺序保证 缓冲 异步通信 RabbitMQ 起源 总结 消息中间件介绍   消息(Message) 在应用之前传递数据,消息可以是一个字符串,也可以是JSON数据,XML数据等等,当然也可以是复杂的对象。对于消息这个是一个抽象的定义,在任何应用之间的数据传递都可以称为消息,例如QQ消息,微信消息等等。   消息队列中间件(Message Queue Middleware,简称MQM)是指高效的传递机制进行平台之间的与平台无关的数据交流,基于数据通信的方式来进行分布式系统的集成。通过提供一个消息队列和消息的排队模型,可以在分布式环境下进行扩展消息传递。   对于消息中间件来说一般有两种传递模式,当然也有其他的,但是常用的就是以下的两种方式 点对点模式 发布订阅模式   点对点模式是基于队列的模式,消息生产者发送消息到消息队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传递称为可能,例如在RocketMQ中消息的落地,可以使得消息重传。  

mysql之消息队列

Deadly 提交于 2020-02-27 02:09:12
消息队列:在消息的传输过程中保存消息的容器。 消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 如图所示: 在不使用消息队列的情况下,用户的请求数据直接写入数据库,再高并发的情况下,会对数据库造成巨的压力,同时也使得响应延迟加剧。在使用消息队列后,用户请求的数据发送给消息队列后立即返回,再由消息队列的消费者进程(通常情况下,该进程独立部署在专门的服务器集群上)从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度远大于数据库,因此用户的响应延迟可得到有效改善。 尤其是在淘宝搞“庆五一”,“双十一”,“春节特卖”等活动时,使用消息队列有很好的削峰作用-------- 即通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。所以在一些电子商务网站促销活动中,合理使用消息队列,可有效抵御促销活动刚开始大量涌入的订单对系统造成的冲击。 需要注意的是,由于数据写入消息队列后立即返回给用户数据在后续的业务校验、写数据库等操作可能失败,因此在使用消息队列进行业务异步处理后,需要适当修改业务流程进行配合,如订单提交后,订单数据写入消息队列,不能立即返回用户订单提交成功,需要在消息队列的订单消费者进程真正处理完该订单,甚至商品出库后