科技新闻

Spring中的代理(proxy)模式

别说谁变了你拦得住时间么 提交于 2020-03-21 15:44:51
代理模式主要有两种:静态代理和动态代理 代理模式 代理模式是常用的 Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联, 代理 类的对象本身并不真正实现服务, 而是通过调用委托类的对象的相关方法, 来提供特定的服务. 按照代理类的创建时期,代理类可分为两种。 1.静态代理类: 由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类 的.class 文件就已经存在了。 静态代理类 如下: StudentImpl 类是代理类, public class StudentImpl implements IStudentServiceDAO { StudentServiceImpl service; StudentImpl(StudentServiceImpl service) { this.service = service; } @Override public void save(Student stu) { System.out.println("开启事务"); service.save(stu); System.out.println("提交事务"); } } StudentServiceImpl

记账程序注意凭证记账与更新自建表同时提交

故事扮演 提交于 2020-03-21 08:16:02
** 完成后先不提交 或者 回滚,记录下消息, CALL FUCNTION 'BAPI_ACC_DOCUMENT_POST' ** 继续自建表更新逻辑: UPDATE zfit640_s SET status1 = gs_zfit640_s-status1 bukrs1 = gs_zfit640_s-bukrs1 belnr1 = gs_zfit640_s-belnr1 budat1 = gs_zfit640_s-budat1 message1 = gs_zfit640_s-message1 zdate = gs_zfit640_s-zdate ztime = gs_zfit640_s-ztime WHERE oms_item = gs_zfit640_s-oms_item AND servercode = gs_zfit640_s-servercode. IF sy-subrc EQ 0. CLEAR gs_return. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X' IMPORTING return = gs_return. IF gs_return-type = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CLEAR: gs_zfit640_s

Spring Cloud各个组件的配套使用

我只是一个虾纸丫 提交于 2020-03-21 08:03:10
我们从整体上来看一下Spring Cloud各个组件如何来配套使用: 从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构。 其中Eureka负责服务的注册与发现,很好将各服务连接起来 Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。 Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示 Spring Cloud Config 提供了统一的配置中心服务 当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息 所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用 最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析 Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。这些功能都是以插拔的形式提供出来,方便我们系统架构演进的过程中,可以合理的选择需要的组件进行集成,从而在架构演进的过程中会更加平滑、顺利。 微服务架构是一种趋势,Spring Cloud提供了标准化的、全站式的技术方案,意义可能会堪比当前Servlet规范的诞生,有效推进服务端软件系统技术水平的进步。 从现在开始

Web开发之HTTP协议

淺唱寂寞╮ 提交于 2020-03-21 01:45:09
HTTP响应消息 一个HTTP响应代表服务器向客户端回送的数据。 一个完整的HTTP响应包括如下内容: 一个状态行、若干消息头、以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。 例如: HTTP/1.1 200 OK //状态行 Server: Microsoft-IIS/5.0 //消息头,以下都是 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html Cache-control: private //消息头,以上都是 //空格隔开 <HTML> //实体内容 <BODY> …… 状态行:用于描述服务器对请求的处理结果 消息头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据 实体内容:代表服务器向客户端回送的数据 HTTP响应的细节——常用状态码 200(正常) 表示一切正常,返回的是正常请求结果 302/307(临时重定向) 指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。 304(未修改) 表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。 404(找不到) 服务器上不存在客户机所请求的资源。 500

RabbitMQ安装教程

大城市里の小女人 提交于 2020-03-21 01:26:22
RabbitMQ安装教程(转:http://blog.csdn.net/lu1005287365/article/details/52315786) 简介: RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。 如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难。不过它也只有几个关键概念,这里简单介绍。 安装: 首先需要安装 Erlang环境 官网: http://www.erlang.org/ Windows版下载地址: http://www.erlang.org/download/otp_win64_17.3.exe Linux版: 使用yum安装 Windows安装步骤; 第一步运行: 第二 步: 第三步: 第四步: 第五步: 这样 就安装完了 Erlang 然后就可以安装RabbitMQ了 首先下载RabbitMQ 的Windows版本 下载地址: http://www.rabbitmq.com/ 打开安装程序 按照下面步骤安装: 安装都比较简单 如此就安装完成了 这样就是安装完成后的开始菜单的效果 都是一些工具 然后进入管理工具 运行命令: [plain] view plain copy print ? rabbitmq-plugins enable rabbitmq_management

消息对列入门

最后都变了- 提交于 2020-03-20 23:07:17
消息模式: 1、观察者模式(点对点模式) 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次 2、发布订阅模式 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。 发布与订阅模式和观察者模式有以下不同: 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,发布者向频道发送一个消息之后,就不需要关心订阅者何时去订阅这个消息,可以立即返回。 二、使用场景 异步处理 发送者将消息发送给消息队列之后,不需要同步等待消息接收者处理完毕,而是立即返回进行其它操作。消息接收者从消息队列中订阅消息之后异步处理。 例如在注册流程中通常需要发送验证邮件来确保注册用户身份的合法性,可以使用消息队列使发送验证邮件的操作异步处理,用户在填写完注册信息之后就可以完成注册,而将发送验证邮件这一消息发送到消息队列中。 只有在业务流程允许异步处理的情况下才能这么做,例如上面的注册流程中,如果要求用户对验证邮件进行点击之后才能完成注册的话,就不能再使用消息队列。 流量削锋 在高并发的场景下,如果短时间有大量的请求到达会压垮服务器。 可以将请求发送到消息队列中

addActionError addFieldErrot addActionMessage 的区别

廉价感情. 提交于 2020-03-20 21:07:36
3 月,跳不动了?>>> 一、 addActionError("错误内容") : Action级别的错误消息 this.addActionError("错误信息1"); this.addActionError("错误信息2"); 显示消息的标签是: <s:actionerror /> 显示全部的 Action级别的错误消息,可以加CSS 二、 addFieldError("字段名","错误信息") 给一个字段(属性)添加错误消息 this.addFieldError("pwd", "错误信息1"); this.addFieldError("pwd", "错误信息2"); 显示消息的方法1:标签是 :<s:fielderror /> 显示全部的错误消息; 显示消息的方法2: <s:fielderror> <s:param>field1 </s:param> 显示指定的 field1字段的 错误消息 <s:param>field2 </s:param> 显示指定的 field2字段的 错误消息 </s:fielderror> 显示消息的方法3: 如果什么都不写,则默认显示在相应字段上方 三、 addActionMessage("相关信息") 需要在action中重写父类的validate方法,对参数进行校验,如果校验失败。则直接写错误信息 this.addActionMessage(

何为百度智能小程序?

二次信任 提交于 2020-03-20 19:47:43
3 月,跳不动了?>>> 智能化相连接人与信息内容、人与贴心服务、人与任何事物的对外开放生态环境,依托于以百度App为代表的全生态数据流量,根据百度AI开放性颠覆式创新,精确相连接消费者,无需下载安装便可享用智慧前瞻性的应用感受。 百度是用户查找信息内容和贴心服务的纯天然入口通道 中心站数据流量分派,竞争优势数据流量更精确,实际效果可预估 数据流量积累为用户,公域流量偏向私域流量 适用交叉式营销推广、人工智能消息推送、信息流广告多技术手段重复获客 适用广告推广模块,适用自行转现 百度小程序几大特色 百度智能小程序,容易获得百度全生态千亿级 数据流量 感受佳 搭建自然用户体验设计体系 打造出新时期适宜感受 数据流量大 对外开放百度全生态千亿级 数据流量 数据流量纯天然可营运 更智能化 人工智能水平普及化,让开发人员 重返业务流程定义和创意设计赛道 对外开放力度大 业内首例对外开放生态环境 摆脱孤岛共创繁荣昌盛 为什么选择微销神 更方便快捷、更贴心服务、更技术专业 稳定性的体系 强悍的安全防御 高韧性扩充水平 在线客服及时在线解答 微销神序帮助您尊享小程序商城流量红利 来源: oschina 链接: https://my.oschina.net/u/4467623/blog/3207306

解决mysql无法登陆

烈酒焚心 提交于 2020-03-20 13:58:29
3 月,跳不动了?>>> 一、错误消息:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决: 1、打开mysql配置文件 /etc/mysql/my.cnf ,添加一行“skip-grant-tables"配置,作用是在mysql启动时不启动授权表以便忘记密码后使用。 2、重启mysql服务,service mysql restart 3、命令行输入“mysql -uroot -p”(不输入密码),回车进入数据库。 4、执行 use mysql;”使用mysql数据库。 5、执行 update user set password=PASSWORD("newpassword") where Host='localhost' and user='root';”(修改root的密码) 6、再打开 /etc/mysql/my.cnf ,删除 skip-grant-tables配置, 保存并关闭文件。 7、 重启mysql服务 8、在命令行中输入“mysql -uroot -p newpassword”,问题搞定! 二、解决修改数据库帐号密码、或host时,无效问题 1.使用ssh直接连接到数据库,不要使用工具连接 2.执行 flush privileges 刷新权限 三

kafka的基本概念

感情迁移 提交于 2020-03-20 10:56:33
kafka的基本概念 kafka是什么 ? ​ kafka是一个多分区、多副本且基于zookeeper协调的分布式消息系统。也是一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。 kafka扮演的三大角色 消息系统 :kafka具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。与此同时,Kafka 还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。 存储系统: Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于Kafka 的消息持久化功能和多副本机制,我们可以把Kafka作为长期的数据存储系统来使用,只需要把对应的数据保留策略设置为“永久”或启用主题的日志压缩功能即可。 流式处理平台: Kafka 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作。 kafka的基本架构 一个典型的 Kafka 体系架构包括若干 Producer 、若干 Broker 、若干 Consumer ,以及一个 ZooKeeper集群 ,如下图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker