- 【C++基础八】类和对象—末(初始化列表、友元和匿名对象)
Pacify_The_North
C++c++开发语言windowsvisualstudio
【C++基础八】类和对象—末1.初始化列表1.1初始化列表的使用1.2初始化列表的细节2.static成员3.友元3.1友元函数3.2友元类4.类的匿名对象5.explicit1.初始化列表构造函数中,为一个成员赋值,只能说对此成员赋初始值,不能称之为初始化,初始化列表才是真正初始化成员变量的地方1.1初始化列表的使用例:classDate{public:Date(intyear,intmonth
- 搞定python之二----数据类型和程序的控制结构
stars
搞定pythonpython开发语言
本文是《搞定python》的第二篇文章,主要介绍了程序的基本结构的基本的数据类型。1、python代码俯视图先从整体上认识一下python代码是如何组织,咱们先来一段简单的代码。#这是第一个python代码importtime#导入时间模块#定义了三个变量year=time.localtime().tm_yearmonth=time.localtime().tm_monday=time.local
- iOS widget小组件-Today Extension
wahkim
iOS开发iOS应用扩展objective-cios
TodayExtension前言样图创建布局TodayViewControler`NCWidgetProviding`协议数据共享交互方式引用CocoaPods管理的第三方库例子源码其他参考前言前段时间采用WidgetKit、SwiftUI写了哥支持iOS14及以上的小组件,那么iOS14以下无法支持,Xcode的版本也是在12.2的版本,没办法创建TodayExtension,怎么办呢?重新下了
- python动态SQL并执行查询
IT-例子
pythonpythonsql数据库
python动态SQL#coding=utf-8#sqlserver的连接importpymssqlimportdatetimeimporttimestart=time.perf_counter()print('程序正在运行,请稍等...')print("数据读取中...")today_now=datetime.datetime.now()print("现在时间是:",today_now)"""这
- docker命令实战运用部署服务
云原生的爱好者
docker容器运维
1.接上篇博文,先讲一下如何利用docker来对容器进行一个守护进程的启动,以及如何进入日期,如下:[root@cjr~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEcentoslatest5d0da3dc97643yearsago231MB[root@cjr~]#dockerrun-td--nametestcentos:latest1b0cfe7658
- 达梦 数据库操作日期
one 大白(●—●)
数据库达梦日期函数操作日期
排班情况获取当月获取上月和下月的数据select*fromuf_zbglbwherefind_in_set('1',zbbm)>0andrqlike'2021-03%'orrqlike'2021-3%'ordatepart(year,rq)=(selectdatepart(YEAR,ADD_MONTHS(DATE'2021-03-16',1)))anddatepart(month,rq)=(sel
- leetcode-sql数据库面试题冲刺(高频SQL五十题)
我想吃烤肉肉
sql测试面试数据库leetcodesql
题目:1068.产品销售分析I销售表Sales:±------------±------+|ColumnName|Type|±------------±------+|sale_id|int||product_id|int||year|int||quantity|int||price|int|±------------±------+(sale_id,year)是销售表Sales的主键(具有唯一值
- 4类和对象(下)
给我一个卤鸡爪和卤鸡头
c++语法篇开发语言c++数据结构c语言算法
1.再谈构造函数1.1构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。classDate{public:Date(intyear,intmonth,intday){_year=year;_month=month;_day=day;}private:int_year;int_month;int_day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,
- MySQL——内置函数
很楠不爱
MySQLmysql数据库
一.日期函数currentdate():当前日期currenttime():当前时间currenttimestamp():当前时间戳date(datetime):返回datetime参数的日期部分date_add(date,intervaldvaluetype):在date中添加日期或时间,interval后的数值单位可以是:year、minute、second、daydate_sub(date,
- 闰年判断的三种实现方法
代码的建筑师
pythonpython前端开发语言
#闰年判断#方法一:①能直接被4整除且不能被100整除的是闰年,eg:1900不是闰年;②能直接被400整除的是闰年,eg:2000是闰年#以下代码由于能被400整除的年份一定可以被4整除,所有直接放在一个大的判断条件下(year%4是否与0相等)year=int(input("请输入一个年份:"))if(year%4)==0:if(year%100)!=0:print("%s年是闰年"%year
- C语言100天练习题【记录本】
柠檬鲨_
c语言算法数据结构
C语言经典100题(手把手编程)可以在哔哩哔哩找到已解决的天数:一,二,五,六下面的都是模模糊糊的可以学学这些算法,我是算法白痴,但是我不是白痴,可以学!第三天(未解决)第四天#include//判断是否为闰年intisLeapYear(intyear){return(year%4==0&&year%100!=0)||(year%400==0);}intmain(){intyear,month,d
- 复旦大学计算机考研机试真题
猿六凯
考研华为od华为
复旦大学计算机考研机试真题历年复旦大学计算机考研机试真题复旦大学计算机考研机试真题在线评测地址:传送门树的子结构题目描述入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构,即A中有出现和B相同的结构和节点值。输入格式两行,第一行是树A,第二行是树B。输出格式若:B是A的子结构,输出true否则:输出false。输入样例3451241输出样例trueyear
- MySql常用命令
程序缘拉皮
MySQLsqlmysql
目录前言SQL通用语法SQL分类 1.DDLDDL语句对数据库进行操作 2.DMLDML语句对数据库表中的数据进行增删改 3.DQLDQL语句基本查询 4.DCLDCL语句管理用户常用函数CONCATREPLACEUPPER和LOWERSUBSTR、LEFT和RIGHTINSTRLENGTHIFNUL数学函数日期函数约束主键约束(PRIMARYKEY)简写PK自增约束(AOTU_INCRE
- 结构体的相关概念1
陈体苗
conclusionc++算法开发语言
1.结构体的声明//thedeclarationofastructurestructBirthday{intyear;intmonth;intday;};//注意结尾的";"必不可少intmain(){Birthdayday1;day1.year=2002;day1.month=5;day1.day=17;Birthdayday2={2003,2,14};cout<<"Day1----------
- 算法002-日期-基础遍历模板、判断第几天、纪念日(分钟)、星期计算(星期)、时间显示(秒)、回文日期(遍历判断日期合法性+转化成字符串判断格式)
m0_66127918
算法数据结构c++
日期-基础循环遍历模板计算1000天后是几号#includeusingnamespacestd;intm1[]={0,1,3,5,7,8,10,12};//大月intm2[]={0,4,6,9,11};//小月intmain(){intyear=2025,month=3,day=2;for(inti=1;iusingnamespacestd;intm1[]={0,1,3,5,7,8,10,12};
- 历年杭州电子科技大学计算机考研复试上机真题
猿六凯
考研
历年杭州电子科技大学计算机考研复试机试真题在线评测:https://app2098.acapp.acwing.com.cn/最大公约数和最小公倍数题目描述输入两个正整数m和n,求其最大公约数和最小公倍数。输入格式两个整数输出格式最大公约数,最小公倍数输入样例57输出样例135year2019字符棱形题目描述输入一个整数n表示棱形的对角半长度,请你用*把这个棱形画出来。输入格式输入一个整数n(naj
- 【一】JavaScript能力提升---类对象、call()、apply()、bind()
是洋洋a
javascript开发语言ecmascript
一、类对象1.1概念类对象是一种用于创建和管理对象的架构或概念1.2定义方式1.2.1基于ES6类语法的类对象classPerson{constructor(name,age){this.name=name;this.age=age;}sayHello(){console.log(`Hello,mynameis${this.name}andIam${this.age}yearsold.`);}}c
- 鸿蒙日期格式工具封装及使用
来之梦
鸿蒙鸿蒙
封装DataFormat.ets/***@param{Date}value*@return{string}*@example*@description格式化日期*/exportclassDataFormat{dateFormat(value:Date):string{constyear=value.getFullYear();constmonth=value.getMonth()+1;constd
- C++(四)类与对象 下
cloud_disspated
c++开发语言
再谈构造函数构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值classDate{public:Date(intyear,intmonth,intday){_year=year;_month=month;_day=day;}private:int_year;int_month;int_day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其
- Python3小白基础入门 | 学习笔记
查理养殖场
编程语言笔记学习笔记python
一、输入输出1、读入字符串str=input()print(str)2、读入整数数字a=int(input())print(a)print(type(a))#type()输出变量类型3、格式化输出+直接拼接:name="Lihua"age=24print("Hello"+name+",youare"+str(age)+"yearsold")%:name="Lihua"age=24print("He
- YOLOv11-ultralytics-8.3.67部分代码阅读笔记-VOC.yaml
红色的山茶花
YOLO笔记深度学习
VOC.yamlultralytics\cfg\datasets\VOC.yaml目录VOC.yaml1.YAML文件内容2.所需的库和模块3.defconvert_label(path,lb_path,year,image_id):4.Download5.Convert1.YAML文件内容#UltralyticsAGPL-3.0License-https://ultralytics.com/li
- mysql小日期时间类型_MySQL之日期时间类型
weixin_39916379
mysql小日期时间类型
mysql(5.5)所支持的日期时间类型有:DATETIME、TIMESTAMP、DATE、TIME、YEAR。几种类型比较如下:日期时间类型占用空间日期格式最小值最大值零值表示DATETIME8bytesYYYY-MM-DDHH:MM:SS1000-01-0100:00:009999-12-3123:59:590000-00-0000:00:00TIMESTAMP4bytesYYYY-MM-DD
- 蓝桥杯备赛打卡Day10
Emberyn
蓝桥杯职场和发展
今天的题目关联性较强,学得较多蓝桥杯每日一题1.回文日期I、回文日期II,日期计算2.挤牛奶,区间合并,校门外的树以下是部分题目的代码//回文日期Iintdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};intdate1,date2,cnt;intis_leap(intyear){if(year%4==0&&year%100!=0||year%400
- python 多进程
Zswdhy
python
#-*-coding:utf-8-*-importtimeimportpymysqlfrommultiprocessingimportProcessfromdatetimeimportdatemonth=date.today().strftime("%Y%m")HOST,USER,PASSWD,DB,PORT='192.168.1.1','admin','password','database',
- python获取当月最后工作日实现在数据库查询指定日期数据(python+sql)
桃子是唯一的水果
python开发语言sql
问题描述:处理数据库业务数据的时候,会遇到查询某一月最后一个工作日的数据此时可以使用sql+python结合实现自动获取当月最后一个工作日日期作为变量代码实现:python:defget_workingday(self):self.now=pd.Timestamp.now()#self.now.year:本年#self.now.month:当月,在这个基础上+-可以实现查询前几个月份的工作日sel
- 脚本 第一次作业
凉意·X
linux
1、创建一个脚本,执行该脚本可以显示如下内容:a.当前你使用的用户名是:***b.当前所在目录是:****#!/bin/bashecho"当前你使用的用户名是:$USER"echo"当前所在目录是:`pwd`"2、创建一个脚本,该脚本可以根据你输入的日期计算出你还有多少天过生日。提示部分:#!/bin/bashread-p"请输入你生日,格式如07-28:"numyear=`date+%Y`A=`
- 论文笔记(七十二)Reward Centering(一)
墨绿色的摆渡人
文章论文阅读
RewardCentering(一)文章概括摘要1奖励中心化理论文章概括引用:@article{naik2024reward,title={RewardCentering},author={Naik,AbhishekandWan,YiandTomar,MananandSutton,RichardS},journal={arXivpreprintarXiv:2405.09999},year={202
- 1985-2023 年 各省、地级市数字经济专利数据
经管数据集
数据分析
数据来源:CNRDS数据库包括Excel数据文件+字段说明书+数据库说明书具体字段:Province[省份]-省份Pftn[地市]-地市Year[会计年度]-会计年度Noderiafty[当年申请的数字经济相关发明数量]-当年申请的数字经济相关发明数量,单位:个Noderiaity[当年授权的数字经济相关发明数量]-当年授权的数字经济相关发明数量,单位:个Noderumap[当年申请的数字经济相关
- C++ MFC 获取时间
澄澈天空
c++mfc开发语言
MFC中CTime类的功能非常强大,可以获取年、月、日、小时、分钟、秒、星期等等,最最重要的是可根据需要去格式化。下面是具体的使用方式:①定义一个CTime类对象CTimetime;②得到当前时间time=CTime::GetCurrentTime();③GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond(),GetDayOf
- uniapp日期选择器
百事可乐☆
uni-appjavajavascript
日期在picker中加fields="month"就只能选择年月了,加fields="year"则只能选择年,默认是年月日格式直接上代码,可以直接粘贴复制复用{{date}}functiongetDate(type){constdate=newDate();letyear=date.getFullYear();letmonth=date.getMonth()+1;letday=date.getDa
- 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发布消息