在cURL中伪造头信息
【AI大模型应用开发】【LangChain系列】9. 实用技巧:大模型的流式输出在 OpenAI 和 LangChain 中的使用
同学小张
大模型人工智能langchaingpt笔记经验分享agi
大家好,我是同学小张,日常分享AI知识和实战案例欢迎点赞+关注,持续学习,持续干货输出。+v:jasper_8017一起交流,一起进步。微信公众号也可搜【同学小张】本站文章一览:当大模型的返回文字非常多时,返回完整的结果会耗费比较长的时间。如果等待大模型形成完整的答案再展示给用户,明显会给用户不好的体验。所以,现在市面上大多数的AI应用,在给用户结果时,都是以流式输出的方式展示给用户的。所谓的流式
llm在网页中的流式输出(langchain与streamlit库)
格瑞Lxf
langchain
一、手动进行流式输出llm本身是支持在终端流式输出的,以ollama为例llm=Ollama(base_url="http://localhost:11434",model="qwen",callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]),)查看源码StreamingStdOutCallbackHandler类中
掌握MySQL:数据库建模与ER图设计指南
勤劳兔码农
数据库mysqloracle
掌握MySQL:数据库建模与ER图设计指南在现代软件开发中,数据库建模是设计和实现数据驱动型应用程序的关键步骤之一。通过数据库建模,我们能够更好地组织数据、提高数据的存储效率、增强数据的完整性和一致性。在MySQL环境下,良好的数据库建模和设计直接影响应用的性能和可维护性。本文将深入探讨数据库建模的基本概念、实体-关系(ER)图的设计原理,以及如何在MySQL中进行数据库建模与优化,为读者提供全面
Netty实战二-实现UDP的单播和广播(1)
2401_84048671
程序员udp网络协议网络
publicclassAnswerHandlerextendsSimpleChannelInboundHandler{/应答的具体内容从常量字符串数组中取得,由nextQuote方法随机获取/privatestaticfinalString[]DICTIONARY={“一个男生暗恋一个女生很久了。一天自习课上,男生偷偷的传了小纸条给女生,上面写着“其实我注意你很久了”。不一会儿,女生传了另一张纸条
Tomcat与JDK版本对应关系,Tomcat各版本特性
2401_84048671
程序员javatomcat开发语言
ApacheTomcat8.xApacheTomcat7.xApacheTomcat6.xApacheTomcat是一个开源软件实现了JavaServlet和JavaServerPages技术。不同版本的Servlet和JSP规范可使用不同版本的ApacheTomcat。Tomcat与JDK版本对应关系为:|Servlet规格|JSP规范|EL规格|WebSocket规范|JASPIC规格|Apa
别让“积怨”成为公共交通的定时炸弹180318陈欣琳
五温西东
12月10日早上,一位自称80岁左右的老太在公交车上辱骂司机,长达13分钟,说司机故意不让她上车。在老太辱骂司机和劝解的乘客的过程中,司机感到委屈,心跳加速,发病倒地抽搐。乘客纷纷上前救助,老太也拿出急救的药喂给司机吃,并帮忙按人中急救。这个事件引发了网友热议。我们仔细观察构成这个事件的小要素,如司机故意不等老人,乘客与司机发生口角等等,会发现这些要素非常熟悉——我们在乘坐公交车时都遇见过。虽然我
8月15日,第②期"教育行走一起写吧"挑战300天活动第15天文章汇总
小尘老师
8月15日,第②期"教育行走一起写吧"挑战300天活动第15天[庆祝][庆祝][庆祝]我们的任务:每天一记录(500字以上自由写作),每月一精品(2000字以上主题作文)我们的标准动作:写文(推荐)+挑战群中接龙(字数、题目+链接)+“教育行走一起写吧”小打卡圈打卡(字数、标题、内容)。每月精品文还需要登记在石墨文档8月份主题——奥运会特别提醒:打卡和接龙要求加上文章字数。例编号省份姓名名称(字数
高仿手表在哪里买,推荐十个受欢迎渠道
百奢之家
高仿手表在哪里买淘宝店铺。选择淘宝店铺上的高仿手表商家进行购买,一旦有问题,可以找到对方来保护自己的权利。钟表商城。钟表商城成立于1998年,位于中国著名的手表一条街,是我国率先通过了电子专业市场ISO9001质量管理体系认证的手表连锁卖场。闲鱼app。闲鱼app上面大多为二手高仿手表店家,个人卖家较少,是能够淘到便宜优质的,但是也是靠运气碰。微商平台。微商平台的高仿手表价格也比较实惠,但是也难免
淘宝开通88vip送网易云会员吗?88会员有哪些权益?
氧惠导师
有一些朋友经常在淘宝平台上面下单购物,然后就看到了有一个淘宝88VIP会员,挺感兴趣的,我们也了解到开通淘宝88vip会员送网易云会员,那么这是真的吗?➤推荐网购薅羊毛app“氧惠”,一个领隐藏优惠券+现金返利的平台。氧惠只提供领券返利链接,下单全程都在淘宝、京东、拼多多等原平台,更支持抖音、快手电商、外卖红包返利等。(应用市场搜“氧惠”下载,邀请码:521521,全网优惠上氧惠!)➤由于信息差的
2023-10-18
祝澜
祝澜2121天2023-10-18读书笔记:变态心理学是一门以心理与行为异常表现为研究对象的心理学分支。它主要研究如何定义心理异常,心理异常的发生、种类、性质和特点,具体表现形式以及心理异常造成的痛苦体验、认知功能和社会功能的损伤等。变态心理学的研究对象,同时也是精神病学的对象。只是各自的侧重点不同。
16.记忆力游戏:锻炼想象力,记忆力
我爱更纱
记得要点是创作出有趣的,愉快的故事,妈妈兴奋与雀跃的态度也是非常重要的因素。这个游戏最大的目的就是让孩子的记忆不只保留到明天,就算是过了一个星期也仍然记得。最初从两张卡片开始训练,记住后开始渐渐增加到10张,20张。
2019-03-30
随缘常喜艾佳
觉知日记三十:今天在广州参观展会,选择新的供应商,感受到行业的快速发展。一些厂家对市场的反应速度快的惊人,在我们刚刚有潜在需求时,厂家已经拿出了相应的产品,定位准确的展现在面前。在行业定位后,客户定位,产品定位,营销定位⋯有一句话说定位定天下,今天有了更深的领悟和学习,期待明天的收获。能量310。2019.3.30
第二代便携式微生物气溶胶采集器
是朗朗啊
历史上的气溶胶污染事件1961年,在莫斯科的一家研究所里,实验人员将从流行出血热疫区捕捉到一些野鼠放在了室内暴露的场所。野鼠身上带有的出血热病毒以气溶胶的形式污染了空气,使得实验室中有63人出现流行性出血热症状。2014年6月,美国疾控中心位于亚特兰大的联邦实验室工作人员,由于未按规程灭活、转移实验样本,导致炭疽杆菌气溶胶泄露,造成86名员工感染。2019年7月24日至8月20日,兰州兽医研究所布
我们的新闻早报
子仲之子
2019年07月10日,星期三,雨转阴昨晚11:00休息,今早05:35起床!我们这块办公区域的同志,有个不成文的习惯,那就是每天早上在未上班前,都会先分享前一天下班之后,自己有遇到的好玩的事情,或是早上听到的新鲜的新闻。刚开始的时候,就只是我们部门三个人自己的活动。所以,我就把这个活动命名为“三人行·新闻早报”时间。后来,慢慢的就发展成了我们这一片区域的活动,财务和司机班的同事,也时常加入我们这
氧惠怎么赚钱?实操氧惠月入10万+的方法秘诀
全网优惠分享
氧惠怎么赚钱?实操氧惠月入10万+的方法秘诀,加入我的团队手把手教学。下面告诉大家怎么加入到氧惠手机应用商店搜索「氧惠」下载,注册时填写邀请码:222999注册时填写邀请码:222999(此码注册可直接享受V8权益)氧惠是与以往完全不同的抖客+淘客app!全新模式,我的直推也会放到你下面,我曾经1年做到百万团队,现在加入我也会帮你做到百万团队。【氧惠】百度有几百万篇报道,也期待你的加入。氧惠邀请码
GO怎么给手机发短信对接验证码短信接口DEMO示例
樱桃桃
发现一个超简单验证码短信接口对接DEMO示例步骤1.注册互亿无线账号2.查找APIID和APIKEY3.代码的书写注册互亿无线账号网站:http://user.ihuyi.com/?JA9Ewr查找APIID和APIKEY注意事项:(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。packagemainimport("crypto/md5""encod
转码日记——Javascript笔记(8)
zzcoding_
转码日记数据结构javascript前端开发语言
数组(Array)数组也是一个对象,和普通对象功能类似。普通对象使用字符串作为属性名,而数组使用数字来作为索引操作。索引:从0开始的整数。数组的存储效率比较高,对属性名没有要求的时候可以使用。基本应用//创建数组对象vararr=newArray();//向数组中添加对象//语法:数组[索引]=值;arr[0]=10;arr[1]=33;//如果读取不存在的索引则返回undefined//获取数组
IBM MQ 通道状态
yangkei
通道MQMQIBMMQ
通道可以随时处于多种状态之一。一些状态也有子状态。通道可以从给定状态移动到其他状态。下图显示了所有可能的通道状态的层次结构以及适用于每个通道状态的子状态。Figure1通道状态之间的流动Figure2CurrentandactiveAchanneliscurrentifitisinanystateotherthaninactive.Acurrentchannelisactiveunlessitis
2月总结 3月计划
Mi丝喵
2月份的目标1⃣️看3本书,没有完成❌2月本来以为有春节假期,自己是妥妥可以完成的,但是在今天写文章的时候发现,现在还在看第三本书的ing过程中,只完成了2本书的阅读。2⃣️每周的周一周三周五运动,没有完成❌整个2月都没有运动过,对的,是整整一个2月,28天,没有动起来。回家的时候还带着运动鞋回家的,想着是可以运动。没想到最后运动鞋一直在旅行箱里面没有拿出来过。3⃣️每天写500字的小文章,我刚数
日更2:儿时徒步忆记
朴心居
最近几十年,中国的发展是真的太快了,世界越来越以不同的方式,被打开在不同年代的孩子们的面前,结果是80后、90后、00后、10后各自的成长经历,呈现出巨大的差异。过去的生活方式,今天的孩子似乎很难想象了。那时候,农村的交通还不像今天这样便利,摩托车几乎走进了每一户人家,汽车也日渐走进更多家庭。当时一个村是难得有一辆摩托车的,更别说汽车了,很多人家甚至连自行车都没有呢!相比其他村庄,我们村的孩子,算
女性财富力复盘3
琦琦Shirley
图片发自App今天的作业真的是处处在点儿上,如同灵魂拷问。从老板和员工的关系上看,毋庸置疑是雇佣和被雇佣的关系,所以老板有要求员工努力工作的权利,员工也有认真工作的责任。可是,有多少人是真正意义的努力和认真,而不是在“假装努力”呢?1.“给老板做选择题”的员工是老板喜欢的。积极主动想老板所想,急老板所急的员工,一定是对工作有激情,对企业有感情,对生活有热情的人,这样的人会得到老板的信任与支持。工作
【MAC 上学习 C++】Day 37-3. 实验4-2-3 验证“哥德巴赫猜想” (20 分)
RaRasa
实验4-2-3验证“哥德巴赫猜想”(20分)1.题目摘自https://pintia.cn/problem-sets/13/problems/4482.题目内容数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2
python xlrd 2.0.1版本不支持.xlsx格式
wxywang89
琐碎记录python
pythonxlrd库的新版本2.0.1版本移除了对.xlsx格式的支持,只支持.xls格式。报错信息如下:File"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/xlrd/__init__.py",line170,inopen_workbookraiseXLRDError(FILE_FO
中原焦点团队焦点初级32期李春静2021年12月21日坚持分享第34天
静读静思
今日感悟听林老师第二次的课真的深受启发,如果孩子挑战主流文化及社会价值观的,面临着“自身经验”与“社会期待经验”的冲突困境,他们就会焦虑、迷茫、无助、逃避,有时可能会借助游戏或娱乐减压,作为最爱他们的人,父母要做的就是接纳、陪伴,用善解人意的理解眼光,看见问题报怨背后的宝贵生命与渴望,相信孩子是自己生命的专家,具有独特性与可塑性,充满无限可能,可以重新创造建构出新的自我认同,能变成最好的自己。所以
Percona-toolkit工具详解
小一_d28d
1.pt工具安装[root@master~]#yuminstall-ypercona-toolkit-3.1.0-2.el7.x86_64.rpm2.常用工具使用介绍2.1pt-archiver归档表#重要参数--limit100每次取100行数据用pt-archive处理--txn-size100设置100行为一个事务提交一次,--where'id>/root/db/checksum.logpt
jQuery 键盘事件keydown ,keypress ,keyup介绍
107x
jsjquerykeydownkeypresskeyup
本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。
一、首先需要知道的是: 1、keydown() keydown事件会在键盘按下时触发. 2、keyup() 代码如下 复制代码
$('input').keyup(funciton(){  
AngularJS中的Promise
bijian1013
JavaScriptAngularJSPromise
一.Promise
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。
为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件:
var cu
c++ 用数组实现栈类
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
java和c语言的雷同
麦田的设计者
java递归scaner
软件启动时的初始化代码,加载用户信息2015年5月27号
从头学java二
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点:
a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句
不会再继续执行。
b、for循环相比于whi
LINUX环境并发服务器的三种实现模型
被触发
linux
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。
1 循环服务器与并发服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
·循环服务器:服务器在同一时刻只能响应一个客户端的请求
·并发服务器:服
Oracle数据库查询指令
肆无忌惮_
oracle数据库
20140920
单表查询
-- 查询************************************************************************************************************
-- 使用scott用户登录
-- 查看emp表
desc emp
ext右下角浮动窗口
知了ing
JavaScriptext
第一种
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/
浅谈REDIS数据库的键值设计
矮蛋蛋
redis
http://www.cnblogs.com/aidandan/
原文地址:http://www.hoterran.info/redis_kv_design
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
maven编译可执行jar包
alleni123
maven
http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
<build>
<plugins>
<plugin>
<artifactId>maven-asse
人力资源在现代企业中的作用
百合不是茶
HR 企业管理
//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人
Linux自启动设置详解
bijian1013
linux
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc
Spring Aop Schema实现
bijian1013
javaspringAOP
本例使用的是Spring2.5
1.Aop配置文件spring-aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmln
【Gson七】Gson预定义类型适配器
bit1129
gson
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto
【Spark八十八】Spark Streaming累加器操作(updateStateByKey)
bit1129
update
在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。
Spark Streaming的解决方案是累加器,工作原理是,定义
linux系统下通过shell脚本快速找到哪个进程在写文件
ronin47
一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。
幸运的是systemtap的安装包里带了inodewatch.stp,位
java-两种方法求第一个最长的可重复子串
bylijinnan
java算法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class MaxPrefix {
public static void main(String[] args) {
String str="abbdabcdabcx";
Netty源码学习-ServerBootstrap启动及事件处理过程
bylijinnan
javanetty
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:
http://bylijinnan.iteye.com/blog/1992325
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的
文章里面提到的操作,每一步都能在Netty里面找到对应的代码
其中Reactor里面的Acceptor就对应Netty的ServerBo
servelt filter listener 的生命周期
cngolon
filterlistenerservelt生命周期
1. servlet 当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说
jmpopups获取input元素值
ctrain
JavaScript
jmpopups 获取弹出层form表单
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。
我们必须到jmpopups生成的代码中去查找这个值,$(
vi查找替换命令详解
daizj
linux正则表达式替换查找vim
一、查找
查找命令
/pattern<Enter> :向下查找pattern匹配字符串
?pattern<Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
字符串匹配
pattern是需要匹配的字符串,例如:
1: /abc<En
对网站中的js,css文件进行打包
dcj3sjt126com
PHP打包
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J
php Yii: 出现undefined offset 或者 undefined index解决方案
dcj3sjt126com
undefined
在开发Yii 时,在程序中定义了如下方式:
if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级
linux 文件格式(1) sed工具
eksliang
linuxlinux sed工具sed工具linux sed详解
转载请出自出处:
http://eksliang.iteye.com/blog/2106082
简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾
Android应用程序获取系统权限
gqdy365
android
引用
如何使Android应用程序获取系统权限
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点
HoverTree开发日志之验证码
hvt
.netC#asp.nethovertreewebform
HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多
JSON API:用 JSON 构建 API 的标准指南中文版
justjavac
json
译文地址:https://github.com/justjavac/json-api-zh_CN
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。
基于 JSON API 的客户端还能够充分利用缓存,
数据结构随记_2
lx.asymmetric
数据结构笔记
第三章 栈与队列
一.简答题
1. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
2.在具有n个单元的循环队列中,队满时共有 n-1 个元素。
3. 向栈中压入元素的操作是先 移动栈顶指针&n
Linux下的监控工具dstat
网络接口
linux
1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是,
C 语言初级入门--二维数组和指针
1140566087
二维数组c/c++指针
/*
二维数组的定义和二维数组元素的引用
二维数组的定义:
当数组中的每个元素带有两个下标时,称这样的数组为二维数组;
(逻辑上把数组看成一个具有行和列的表格或一个矩阵);
语法:
类型名 数组名[常量表达式1][常量表达式2]
二维数组的引用:
引用二维数组元素时必须带有两个下标,引用形式如下:
例如:
int a[3][4]; 引用:
10点睛Spring4.1-Application Event
wiselyman
application
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息