- 【链接目录】
刘恒123456789
jsjqueryvuephpidesqlmysql
推荐链接环境配置PhpStormWindows浏览器插件键盘特殊符号dockerdocker基础Windows10dockerdockerfileLinuxApacheComposerUbuntu后门程序技术Excel压力测试工具GitWampServer前端笔记JavaScript+jQueryLayuiVUESQL笔记MySQLSQLServerRedisPHPPHP笔记PHP设计模式Thin
- PHP笔记
腿子代码了
PHPphp笔记开发语言
文章目录PHP一、什么是PHP二、PHP集成环境的安装三、WampServer四、PHP基础PHP标准格式php注释变量的定义传值替换变量的作用域变量的检测与删除static静态变量进制转换响应头字符串边界定位符字符串函数常量的定义三元表达式五、基础文件引入点函数参数类型约束以及严格模式数组自定义array_walk_recursive()递归改变值传递var_export合法转换为字符串序列化与
- 2018-05-21
ada456ada
php笔记方法一:@在任何错误语句之前加上@符号,即可屏蔽!方法二:error_reporting在PHP文件第一行加上:error_reporting(0);即可屏蔽!header:{"Content-Type":"application/x-www-form-urlencoded"},a的download属性只有在文件在服务器上才能用,不能跨域跨域则需要如此:URL.createObjectU
- qeephp笔记
万允华
笔记
1、$select->getCount()获取总条数$select->getSum('fa_kuan_money');获取某个值的总和
- PHP笔记-->读取JSON数据以及获取读取到的JSON里边的数据
の天命喵星人
PHPphp笔记json
由于我以前是写C#的,现在学一下PHP,在读取json数据的时候被以前的思维卡住了。以前用C#读取的时候,是先定义一个数组,将反序列化的json存到数组里面,在从数组里面获取jaon中的“data”数据。其实PHP的思路也是一样的,但是由于PHP是弱类型语言,所以定义一个变量直接取数据就行。例如://这是一个JSON$jsonData='{"name":"John","age":30,"city"
- php笔记
ZHWenDong
php笔记1024程序员节
whereExists方法适用于需要根据其他表的数据来过滤主查询的结果,只保留与子查询匹配的记录。$result=$result->whereExists(function($query)use($rightTagIds){$query->select(DB::raw(1))->from('third_goods_right_relate_tag')->whereIn('third_goods_r
- 学习PHP笔记1
开摆工作室
WebPHPphp开发语言后端sql服务器
学习PHP笔记(一)PHP基础PHP基本语法标准风格⭕注意:如果一个文件里面全部都是PHP代码,推荐省略结束语句?>。PHP的注释单行注释//注释内容#注释内容多行注释/*注释内容*/PHP的变量PHP的变量不用声明就能够直接定义与使用⭕变量声明与创建的注意事项变量必须以$符号开始,后面跟着变量的名称变量名必须以字母或者下划线字符开始,不能是数字变量名只能包含字母、数字以及下划线(A-z、0-9和
- PHP学习第一天
CONLYOUC
前言:PHP笔记,属于个人的学习、理解、收集、整理。分享于此,一同共勉,如果有误,敬请告之,吾必改之。古人云:理论还是要靠实践来检验。基础知识就不多说了,推荐个php教程吧,很适合新手查阅。一、php变量的数据类型共八种:整数型(int)、浮点型(float)、布尔型(boolean)、字符串(string)、数组(array)、对象(object)、空类型(null)和资源类型(resource
- 2019-03-11 php笔记
我在代码的海洋里遨游
//文件上传$_FILESmove_uploaded_file()//param1文件上传临时目录//param2文件保存的路径以及文件名php.ini配置file_upload=on//开启post上传方式max_execution_time=30//设定php程序执行最大时间memory_limit=128M//php程序执行时,所占用的最大内存数值upload_max_filesize=2M
- php 判断字符串为浮点数,php笔记03:布尔类型,字符串,浮点数
三亻已
php判断字符串为浮点数
1.布尔类型下面情况都是看出false:布尔类型FALSE自身整型值为0浮点型值为0.0空字符串,以及字符串"0"不包含任何元素的数组不包含任何成员变量的对象(仅PHP4.0)特殊类型NULL(包括尚未设定的变量)2.浮点数浮点数的案例:$a=0.23456789022222988;echo$a;//0.23456789022223这是浏览器的反映的结果,这是因为php浮点数的精度为14位有效数字
- PHP笔记-环境配置和常见问题处理
Bonrui
php开发工具php
目录一、PHP5.6连接mysql5.6正常mysql8.0报错二、Apache配置多个php切换三、Apache开启gzip四、php调试模式配置(PhpStorm)五、Primaryscriptunknown错误六、Itisnotsafetorelyonthesystem'stimezonesettings错误七、ThinkPHP多数据源配置八、dockerphp-fpm优化九、ThinkPH
- php笔记1
萧鼎
php笔记开发语言
php环境PHP作为一种服务器端脚本语言,可以在各种操作系统上运行。搭建PHP网站的环境,你需要以下几个要素:Web服务器:常见的选择有Apache、Nginx和IIS。你需要安装和配置其中一个服务器软件。PHP解释器:PHP是一种解释性语言,需要安装PHP解释器来运行PHP代码。你可以从PHP官方网站下载并安装适合你操作系统的PHP版本。数据库:大多数网站需要与数据库进行交互。流行的选择包括My
- html 中< col>标签和< colgroup>标签的区别
diliannie1104
转载自https://www.ggbiji.com/html-col-colgroup.html标签是给表格中一个或多个列定义属性值,而标签是对表格中的列进行组合,从而实现对表格的格式化。标签一般会放在标签中使用,对标签组合的列分别设置样式。标签也可以有样式属性,是对组合的列设置相同的样式,标签设置的样式会被标签设置的样式覆盖。格式:实例:html中标签和标签的区别笔记_PHP笔记学号姓名成绩01
- PHP笔记之文件上传
红烧兔纸
Web知识
目录文件上传1、文件上传原理2、超全局变量数组$_FILES(九个全局数组之一)3、上传文件错误代码4、查看上传的临时文件位置5、将上传文件移动到新位置6、上传文件的相关配置(php.ini)7、获取文件路径信息pathinfo()8、检查数组中是否存在某个值in_array()9、生成唯一IDuniqid()实例:单个文件上传1、上传表单制作upload.html2、上传文件的程序处理uploa
- php笔记
码农起步者
现在想想感觉已经快把php抛弃了~太久不敲代码,手是真的生了,以前虽然学了不少,但是基本上已经还给老师了,正好为渗透巩固下基础,再来学一遍!挑选自己不会的记录下来~php内置常量";echo(__FUNCTION__);//返回函数定义时候的名字echo"";echo(__DIR__);echo"";echo(PHP_OS);//操作系统类型echo"";echo(PHP_VERSION);//p
- php笔记
我在代码的海洋里遨游
资源类型resource(无法自定义的数据类型)$res=fopen('resource.txt','r');var_dump($res)//stream;数据转化/**临时转化**/(int)$var;(float)$var;(boolean)$var;(float)$var;(string)$var;(array)$var;(object)$var;(unset)$var;//null//函数
- 2019-03-07 php笔记
我在代码的海洋里遨游
//抑制表达式中的错误@$int;var_dump($int);//报错NULL@var_dump($int);//NULL不报错@var_dump(is_null($int));//true//echo不能用@可以写成echo@$int//语法错误还是没有用//运行外部命令如CMD命令``反引号$str=`ipconfig`//编码转化iconv(afer,before,$var)//字符串函数
- php笔记
蛋黄肉
类魔术方法__constructor(){}构造函数__destruct析构函数__set两个参数,要设置对象的名称,设置对象的值,当修改了对象的属性的时候,这个方法被调用,__get一个参数,获取对象的名称,当对象的属性被获取的时候,这个方法被调用__isset一个参数,对象属性名,当类外使用isset判断属性是否存在时被调用__unset一个参数,对象属性名,当类外使用unset删除属性时被调
- 2018-12-15
Emily0917
php笔记2递归算法函数自己调用自己递归解决问题的提点:完成一个需求有多个步骤,完成每一步的代码是十分相似的,只有函数传递的参数不同。冒泡排序对于一个长度为N的数组,我们需要排序N-1轮,每i轮要比较N-i次。对此我们可以用双重循环语句,外层循环控制循环轮次,内层循环控制每轮的比较次数每一轮依次进行2个数比较,交换!
- PHP笔记
wscfan
一、Apache、PHP、MySQL安装1、Apache的安装1.1安装:在dos界面进入安装包的bin目录下执行语句:httpd-kinstall1.2卸载:在dos界面进入安装包的bin目录下执行语句:httpd-kuninstall1.3Apache常见命令:httpd-kstart(启动)httpd-krestart(重启)httpd-kstop(停止)httpd-t(检查配置文件是否出错
- 20211010 PHP笔记
白瑕
php数据库sql
20211010PHP笔记文章目录20211010PHP笔记前言一、mysqli_real_query()二、mysqli_multi_query()三、mysqli_free_result();四、mysqli_fetch_all()五、fopen();六、flock()七、fwrite()八、fclose()七、fread();八、unset()九、isset()十、file_get_cont
- PHP笔记
mirse
函数中变量局部动态变量functionvariable_local(){$a=1;$a++;echo$a;}variable_local();//2variable_local();//2局部静态变量functionvariable_static(){static$a=1;$a++;echo$a;}variable_static();//2variable_static();//3全局变量$a=3
- PHP笔记 - 面向对象
夙小叶
属性=形态=变量方法=行为=函数类类是生成对象的代码模板,它只是一个模板,一个设计图纸以class开头属性必须有可见性关键字(PHP5及更高版本)关键字描述public公共的,所有实例都可以访问protected受保护的,只有存在继承关系的可以访问,比如子类,父类private私人的,只有对应的类内部能够调用对象new关键字,将一个类(图纸)实例化可以得到无数个相同类型的不同对象(楼房)$cat=
- PHP笔记 | 正则表达式详析 与 诸多运用实例
凌川江雪
1.PHP正则表达式(PCRE)定义正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式。$p='/apple/';$str="applebanna";if(preg_match($p,$str)){echo'matched';}其中字符串'/apple/'就是一个正则表达式,他用来匹配源字符串中是否存在apple字符串。PHP中使用PCRE库函
- PHP笔记5php与数据库
8d2855a6c5d0
MySQL数据库操作步骤第一步:登录到MySQL服务器第二步:选择当前要操作的数据库第三步:设置请求和返回数据的字符集第四步:执行SQL语句增加记录:INSERTINTOnews(title,content)VALUES(‘标题’,‘内容’)删除记录:DELETEFROMnewsWHEREid=180修改记录:UPDATEnewsSETtitle=‘新标题’,content=‘新内容’WHEREi
- php+mysql
程少辉
php笔记导读wamp集成开发环境w:windows操作系统mamplampa:apache服务器//提供某种特定功能的代码块web服务器发送/接收请求m:mysql数据库服务//关系型/非关系型(MongoDB)关系模型p:php是运行在服务器端的脚本语言静态网页没有链接数据库的网页动态网页链接数据库,数据库中获取数据服务器如何处理用户请求当在地址栏键下地址的时候,浏览器会结合我们的软硬件,将h
- 自学PHP笔记(一)PHP语法
本文章转发来自:https://blog.csdn.net/KH_FC/a...PHP基本语法php使用一对特殊的标记包含php代码,与HTML代码混在一起。当服务器解析页面时,能够自动过滤出PHP脚本并进行解释,最后把生成的静态网页传递给客户端。1.PHP标记一般情况下,PHP代码都被嵌入到HTMl文档中,PHP代码在HTML中嵌入时有以下几种方式:默认标记默认标记是通过""标记进行将HTML和
- 自学PHP笔记(一)PHP语法
本文章转发来自:https://blog.csdn.net/KH_FC/a...PHP基本语法php使用一对特殊的标记包含php代码,与HTML代码混在一起。当服务器解析页面时,能够自动过滤出PHP脚本并进行解释,最后把生成的静态网页传递给客户端。1.PHP标记一般情况下,PHP代码都被嵌入到HTMl文档中,PHP代码在HTML中嵌入时有以下几种方式:默认标记默认标记是通过""标记进行将HTML和
- PHP笔记
_fhs
微信公众号网页授权详解PHP的curl函数的详细介绍(总结)yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现Iterator接口的方式,性能开销和复杂性大大降低。yield生成器允许你在foreach代码块中写代码来迭代一组数据而不需要在内存中创建一个数组。PHP性能优化利器:生成器yield理解PHP的yield是个什么玩意(一)y
- mac下Apache配置
_我们一直在路上_
mac下Apache配置今天主要是记录一下mac上面启动自带Apache报错(自学PHP笔记)一,配置文件1.Apache的主配置文件是:/etc/apache2/httpd.conf(一般设置相关配置都在该文件里面,复制到桌面改完在替换,不能直接修改)2.WebServer位置:Library/WebServer(这个路径是工程路径,启动之后会去加载这个路径下的工程)二,Apache操作命令启动
- 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发布消息