- 已解决:No converter for [class XXX] with preset Content-Type ‘XXX‘
青灯文案
Java后端java后端restful
http://localhost:8085/api/v1.0/user/exportorg.springframework.http.converter.HttpMessageNotWritableException:Noconverterfor[classcn.com.wind.server.model.vo.Response]withpresetContent-Type'multipart/f
- OSCP - Proving Grounds - Quackerjack
柴郡猫^O^
OSCP网络安全安全性测试安全
主要知识点端口转发具体步骤执行nmap扫描,开了好多端口,我先试验80和8081,看起来8081比较有趣Nmapscanreportfor192.168.51.57Hostisup(0.0011slatency).Notshown:65527filteredtcpports(no-response)PORTSTATESERVICEVERSION21/tcpopenftpvsftpd3.0.2|ft
- docker pull 镜像失败 Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: reque
jjw_zyfx
docker/k8sJavadockerhttp容器
解决方法:多加几个docker的镜像源,步骤如下:使用vim打开/etc/docker/daemon.json这个文件vim/etc/docker/daemon.json填写内容如下:{"registry-mirrors":["https://docker.211678.top","https://docker.1panel.live","https://hub.rat.dev","https:/
- Python模拟发送SOME/IP消息(Scapy模块)
李星星BruceL
车载总线及以太网pythontcp/ip网络协议车载系统服务发现
Python模拟服务端或客户端发送SOME/IP消息1说明2依赖3服务端3.1导包3.2参数定义3.3提供服务(OfferService)3.4订阅ACK/NACK(SubscribeACK/NACK)3.5通知(Notifier)3.6请求/响应ACK(ResponseACK)1说明主要介绍如何使用Python+scapy模块进行SOME/IP以及SOME/IP-SD消息的发送和解析;关于SOM
- 《论文阅读》 用于产生移情反应的迭代联想记忆模型 ACL2024
365JHWZGo
情感对话论文阅读回复生成ACL2024共情回复empathetic
《论文阅读》用于产生移情反应的迭代联想记忆模型ACL2024前言简介任务定义模型架构EncodingDialogueInformationCapturingAssociatedInformationPredictingEmotionandGeneratingResponse损失函数问题前言亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~无抄袭,无复制,纯手工敲击键盘~今天为大家带来的是《
- 【Springboot】——响应与分层解耦架构
Y小夜
架构springboot后端javaspring
博主现有专栏:C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,设计模式、Python机器学习、Springboot等主页链接:Y小夜-CSDN博客目录响应响应数据✨@ResponseBody✨G
- 软件测试技巧-如何定位前后端bug?
楠神说软件测试
bug
背景当发现bug时,我们可能会碰到不知道该提给前端or后端的情况,降低了我们的测试效率,本文就介绍几种定位前后端bug的技巧方法一:通过接口抓包来判断用f12或者fiddler抓包,查看请求和响应数据的值与数据库中的数据值做对比,如果中间出现数据在接口传递过程中发生了变化或不符合预期,就可能存在前端或后端Bug~页面上的数据没有正确的传到request的参数里面,以及response中的参数的值没
- 华为OD机试E卷 - 报文响应时间(Java & Python& JS & C++ & C )
算法大师
最新华为OD机试java华为odpythonc语言c++javascript华为OD机试E卷
最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述IGMP协议中,有一个字段称作最大响应时间(MaxResponseTime),HOST收到查询报文,解折出MaxResponsetime字段后,需要在(0,MaxResponseTime]时间(s)内选取随机时间回应一个响应报文,如果在随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。最
- (RAG系列) FastGPT工作流的http请求模块使用
是小白_鸭
RAG语言模型ai自然语言处理
FastGPT工作流的http请求模块使用版本使用说明代码模板版本fastgptv4.8.10使用说明question接收传入的变量,msg集合则是包含返回的变量,fastgpt的工作流的http请求模块填写url->http://xxxx:5000/deal_response代码模板fromflaskimportFlask,requestimportjsonimportreapp=Flask(_
- 用 aiofiles 模块的 asyncio.to_thread() 方法将同步文件操作转换为异步操作
PyAIGCMaster
python
importaiofilesimportreasyncdefdownload_text_to_file(url,name):asyncwithaiohttp.ClientSession()assession:asyncwithsession.get(url)asresponse:text=awaitresponse.text()obj_content=re.compile(r"content:'(
- API接口在电商的应用及收益
前端后端运维数据挖掘api
一、API接口在电商的核心应用场景(一)商品数据管理与展示在电商平台,商品信息的准确与实时更新极为关键。借助API接口,能轻松实现商品数据从供应商系统到电商平台的同步。例如,使用Python结合Requests库编写代码,从外部API获取商品数据:importrequestsurl="https://example.com/api/products"response=requests.get(ur
- 问题大集-02-vue ui 启动时Failed to get response from https://registry.npm.taobao.org/vue-cli-version-marker
会蹦的鱼
vue.jsui前端
1、问题:Failedtogetresponsefromhttps://registry.npm.taobao.org/vue-cli-version-marker使用VueCLI的图形用户界面(GUI)时遇到这个错误,通常意味着VueCLI在尝试从指定的npm镜像(这里是淘宝的npm镜像https://registry.npm.taobao.org)获取某个包(这里是vue-cli-versio
- 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canc
码农甘道夫
dockerk8sdocker容器
解决docker:Errorresponsefromdaemon:Get“https://registry-1.docker.io/v2/”:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders).首先进入/etc/docker/daemon.json文件然后在里面加
- 子平八字生成
warrah
岁月云——java基础java服务器前端
1多线程生成数据@PostMapping("genData")publicResponseResultgenData(){StopWatchstopWatch=newStopWatch();stopWatch.start();//intthreadPoolSize=Math.min(Runtime.getRuntime().availableProcessors()*2,64);intthread
- reac 后端接口返回二进制文件流前端导出文件
初遇你时动了情
前端
axios配置在你的请求中加入responseType:'blob'导出函数exportinterfaceDownloadFileOptions{filename:string;//文件名称}/***下载二进制文件流*@paramdata-二进制数据*@paramoptions-下载配置*/exportconstdownloadBinaryFile1=(data:any,//这里使用any是因为后
- Convert excel format exception.You can try specifying the ‘excelType‘ yourself
Ase5gqe
前端html面试javarestful开发语言
@ApiOperation(value="楼栋基本信息",notes="需要登录。请求头携带Authorization字段")@ApiImplicitParams({@ApiImplicitParam(name="excelFile",value="excel文件",required=true,dataType="int",paramType="query")})@ApiResponses({@A
- 用java 实现 同意授权给公众号访问其信息。这通常通过将用户重定向到一个由微信提供的授权页面完成。
用心去追梦
java微信开发语言
在Java中实现微信公众号的OAuth2.0网页授权流程,主要涉及构建一个HTTP请求来重定向用户到微信提供的授权页面。以下是一个简单的示例,演示如何创建这个重定向链接并将其发送给客户端浏览器。步骤1:构建授权URL首先,你需要根据微信官方文档构造授权URL。这个URL将包含你的应用ID(appid)、回调地址(redirect_uri)、响应类型(response_type=code)、授权作用
- Vue.js组件开发-实现后端返回二进制文件在浏览器自动下载
LCG元
前端vue.js
在Vue.js组件开发中,若需实现从后端获取二进制文件并触发浏览器自动下载,可以利用axios(或其他HTTP客户端库)来向后端发送请求,随后利用Blob对象及URL.createObjectURL方法生成一个可供下载的链接,最后通过创建一个隐藏的元素或利用window.location来启动下载。步骤1.发送请求获取二进制数据:利用axios向后端API发送请求,并指定responseTyp
- TypeError:__init__() missing 1 required positional argument :‘problem‘
菜鸟猿小江
pythongithubvscodeubuntu
成功解决TypeError:__init__()missing1requiredpositionalargument:'problem'偶然遇见python报错__init__()missing1requiredpositionalargument:'problem'报错代码:response=p.map(searchParallel,paramList)多方查找检查未发现错误,重装Ubuntu未
- EL表达式与JSTL标签库详解
秦老师Q
JavaWeb基础java
前言本章主要学习EL表达式与JSTL标签库,用于简化JSP数据操作。收录JavaWeb基础系列,该系列主要学习JavaWeb开发原生框架、Servlet、JSP、request请求对象、response响应对象、Session会话对象、Filter过滤器、EL表达式、JSTL标签库、三层开发模型等知识点,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。目标一、EL表达式1.概念2.语法3.示例4.EL
- Python爬虫爬取1万首音乐代码
EasySoft易软
python
importrequestsbase_url=“http://music.163.com/song/media/outer/url?id=”start_id=200000end_id=210000formusic_idinrange(start_id,end_id+1):song_url=base_url+str(music_id)response=requests.get(song_url,st
- drogon跨域问题和全局异常处理
zh7314
c++
2024年6月20日12:21:11在main.cc里加入/***全局异常处理*/drogon::app().setExceptionHandler([](conststd::exception&e,constdrogon::HttpRequestPtr&req,std::function&&callback){LOG_DEBUGdrogon::HttpResponsePtr{if(req->me
- jsp有哪些内置对象?作用分别是什么?
富哥92
面试
1.HttpServletRequet类的Request对象:代表请求对象,主要用于接受客户端通过HTTP协议连接传输服务器端的数据。2.HttpSevletResponse类的Response对象:代表响应对象,主要用于向客户端发送数据。3.JspWriter类的out对象:主要用于向客户端输出数据,out的基类是jspWriter4.HttpSession类的session对象:主要用来分别保
- 关于 python 的 http 客户端的默认请求头测试 —— requests、httpx、curl_cffi
python
开始测试首先测试requests测试代码importrequests#发起HTTPGET请求url="http://xxx.xxx.xxx.xxx:8086"response=requests.get(url)#打印结果print("ResponseContent(bytes):",response.content)print("ResponseText(str):",response.text)
- AXIOS的引入和封装
z_y_j229970438
前端
Axios是一个用于在浏览器和Node.js中进行HTTP请求的流行库。以下是Axios的基本使用说明,包括安装和定义。一、安装pnpmaddaxios二、使用importaxiosfrom'axios';axios.get('http://139.186.166.35:3001/api/testGet').then(response=>{console.log('Response:',respo
- python 爬虫学习
lally.
python爬虫学习
目录requst库访问HTML语言常用HTML标签结构性标签文本格式化标签超链接与图像列表标签HTML练习BeautifulSoup处理数据requst库访问fromrequestsimport*response=get("https://19j.tv/")print(response)若访问成功,状态码为200,访问失败,则查询状态码,http和https的状态码是一样的http状态码可以采取伪
- 《Python实现简易DDoS压力测试脚本:原理、代码与使用警示》
乐茵安全
python_studychrome前端python网络安全
DDoS测试脚本声明:本文所涉及代码仅供学习使用,任何人利用此造成的一切后果与本人无关源码import requestsimport threading# 目标URLtarget_url = "http://47.121.xxx.xxx/"# 发送请求的函数def send_request(): while True: try: response = re
- XXL-TOOL v1.3.2 发布 | Java工具类库
后端javaspring
ReleaseNotes1、【新增】新增多个工具类模块,包括:Md5Tool、HexTool、HttpTool等;2、【完善】工具类单测完善;3、【升级】升级依赖版本,如freemarker、junit…等。简介XXL-TOOL是一个Java工具类库,致力于让Java开发更高效。包含“集合、字符串、缓存、并发、Excel、Emoji、Response、Pipeline……”等数十个模块。文档地址中
- laravel-api-response - 规范化和标准化 Laravel API 响应数据结构
laravel-api-response-规范化和标准化LaravelAPI响应数据结构laravel-api-response-规范化和标准化LaravelAPI响应数据结构。源码guanguans/laravel-api-response功能支持自定义响应数据结构支持restful接口响应(可选)支持自动处理api异常支持本地化消息支持自定义管道(通过管道处理api响应结构)支持自定义异常管道
- Long类型前后端数据不一致
igotyback
前端
响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问
- 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发布消息