问题背景给你一个整数数组numsnumsnums,返回nums[i]XORnums[j]nums[i]\XOR\nums[j]nums[i]XORnums[j]的最大运算结果,其中0≤i≤jset=newHashSet=0;i--){set.clear();mask|=1<
To 遗留类 和 From 遗留类 与 传统日期处理的转换(配有详细案例代码解析)
励志去大厂的菜鸟
白话拆解JavaJava思想和方法Java学习oraclejava学习方法数据库开发语言
前言:小编最近又要练科目三了天天好多事情啊,不知道大家放了假事情多不多我们继续日更!!!我们一直都是以这样的形式,让新手小白轻松理解复杂晦涩的概念,把Java代码拆解的清清楚楚,每一步都知道他是怎么来的,为什么用这串代码关键字,对比同类型的代码,让大家真正看完以后融会贯通,举一反三,实践应用!!!!①官方定义和大白话拆解对比②举生活中常见贴合例子、图解辅助理解的形式③对代码实例中关键部分进行详细拆
认识软件测试 - 软实力面试题
Sunrise_angel
软件测试压力测试
目录1.什么是测试1.1简单认识测试1.2为什么需要测试1.3软件测试的定义2.测试的岗位有哪些2.1面试题[HR面]:测开和测试的区别是什么?3.软件测试和软件开发3.1测试和调试的区别3.2面试题:走测试岗位为什么还要学开发知识?4.优秀软件测试人员具备的素质4.1综合能力4.2掌握自动化测试技术4.3测试用例的设计能力4.4探索性思维4.5兴趣4.6责任感和压力4.7面试题4.8面试题:为什
SpringBoot+Vue网站项目是如何实现的
森森 coding
技术springbootvue.js后端毕业设计
1.项目规划需求分析:明确项目的功能需求,比如用户注册、登录、数据展示等。确定技术栈:使用SpringBoot作为后端,Vue.js作为前端,MySQL作为数据库。2.环境准备2.1后端安装JDK:确保安装JavaDevelopmentKit(JDK)8或更高版本。安装Maven:用于管理依赖和构建项目。IDE选择:选择合适的IDE,如IntelliJIDEA或Eclipse。2.2前端安装Nod
Java自定义异常处理
胡净
java开发语言
在Java中,自定义异常处理通常涉及创建一个新的异常类并在适当的地方抛出该异常。下面是一个简单的示例,演示如何创建和使用自定义异常。步骤1:创建自定义异常类首先,你需要创建一个继承自Exception或RuntimeException的类。选择哪个取决于你的需求:如果希望强制调用者处理该异常,应该继承自Exception;如果可以选择不处理该异常,应该继承自RuntimeException。//自
每日重温Java核心基础之--面向对象编程中的接口
不夜尘
java开发语言
一、什么是接口接口是抽象方法的集合,通常用interface关键字声明。一个类通过实现接口的方式,从而继承接口的抽象方法。接口主要用于定义一组规范,规定实现接口的类必须遵循的契约。二、接口的语法interface名称[extends其他的接口名]{//声明变量//抽象方法intgetMoney();}例如:interfaceIPay{intgetMoney();}三、接口的特点方法都是抽象方法:接
华为OD机试E卷 --游戏分组--24年OD统一考试(Java & JS & Python & C & C++)
飞码创造者
最新华为OD机试题库2024华为od游戏javajavascriptc++cpython
文章目录题目描述输入描述输出描述用例题目解析Js算法源码python算法源码java算法源码c++算法源码c算法源码题目描述部门准备举办一场王者荣耀表演赛,有10名游戏爱好者参与,分为两队,每队5人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把10名参赛者分为示例尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。现在给你10名参与者的游戏水平评分,请你根
Spring经典面试题
codeBrute
springjava后端面试
在Spring的面试中,经常会被问到一些经典的问题,这些问题涵盖了Spring的基本概念、核心特性、工作原理以及在实际项目中的应用。以下是一些Spring面试中最经典的题目:一、Spring概述什么是Spring框架?Spring框架有哪些主要模块?回答要点:Spring是一个轻量级的JavaEE框架,旨在简化企业级应用开发。Spring框架的核心模块包括SpringCore(提供IoC和DI服务
Vue.js组件开发-如何处理跨域请求
LCG元
前端vue.js
在Vue.js组件开发中,处理跨域请求(CORS,即跨来源资源共享)通常不是直接在Vue组件中解决的,而是需要后端服务器进行相应的配置,以允许来自不同源的请求。不过,前端开发者也需要了解一些基本的CORS概念和策略,以便与后端团队有效协作,并在必要时进行适当的配置或调试。CORS基本概念1.同源策略:默认情况下,浏览器遵循同源策略,即只允许加载、执行与当前页面来源(协议、域名、端口)相同的资源
HarmonyOS 与 iOS:架构与优势的深度剖析
汪子熙
计算机基础知识harmonyosios架构华为
在现代操作系统的版图中,HarmonyOS和iOS都占据着重要地位。它们代表了两种不同的发展方向:前者以分布式架构和多终端融合为核心,后者则以精细化的用户体验和封闭的生态系统见长。以下将通过多个维度剖析它们的本质区别与各自的优势。技术架构的不同HarmonyOS是由华为开发的一款基于微内核设计的分布式操作系统,强调跨设备的无缝协同。其微内核架构使系统的模块更加轻量化,并支持多样化设备的集成,从智能
Big-endian(大端字节序)与Little-endian(小端字节序)区别
kse_music
技能arm开发字节大端字节小端字节
文章目录前言字节序的定义举例说明为什么有两种字节序应用举例总结前言BIG_ENDIAN和LITTLE_ENDIAN是两种不同的字节序(ByteOrder)表示方式,用于指定数据在内存中存储的顺序。字节序的定义字节序指的是多字节数据类型(如int,long,float等)在计算机内存中的存储顺序。主要有两种字节序:Big-endian(大端字节序):最高有效字节(MostSignificantByt
内网渗透测试工具及渗透测试安全审计方法总结
Hacker_Nightrain
测试工具安全网络
1.内网安全检查/渗透介绍1.1攻击思路有2种思路:攻击外网服务器,获取外网服务器的权限,接着利用入侵成功的外网服务器作为跳板,攻击内网其他服务器,最后获得敏感数据,并将数据传递到攻击者,看情况安装长期后门,实现长期控制和获得敏感数据的方式;攻击办公网的系统、办公网电脑、办公网无线等方式,一般是采用社工,实现控制办公电脑,再用获得的办公网数据,可能是内网的各种登录账号和密码,再获取办公网或者生产网
python中报错“ModuleNotFoundError: No module named ‘openpyxl‘”
wang151038606
python中bugpython中的安装包python
python中报错“ModuleNotFoundError:Nomodulenamed‘openpyxl’”importopenpyxl时报错“ModuleNotFoundError:Nomodulenamed‘openpyxl’”在Python中遇到ModuleNotFoundError:Nomodulenamed'openpyxl'这个错误,通常意味着你的Python环境中没有安装openpy
系统建模语言 (SysML)
CoderIsArt
架构设计研究SysML
系统建模语言(SysML)是一种通用的建模语言,用于支持复杂系统的需求分析、设计、验证和验证等系统工程活动。SysML是由UML(统一建模语言)扩展而来的,专门用于描述系统的需求、行为、结构和参数化特性。以下是有关SysML和相关工具的详细信息以及软件下载建议。SysML的核心特点专注于系统工程:比UML更适合跨学科的系统建模。支持硬件、软件、人、信息和过程等系统要素的建模。视图与建模:SysML
基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day2
无限大.
前端代码实现2048html5前端html
为了使2048游戏的设计更加美观和用户友好,我们可以进行以下几项优化:改善颜色方案:使用更温馨的颜色组合。添加动画效果:为方块的移动和合并添加渐变效果。优化分数显示:在分数增加时使用动画效果。以下是改进后的代码示例:1.CSS样式(style.css)body{display:flex;justify-content:center;align-items:center;height:100vh;b
实现实时通信:使用Python WebSocket与服务器进行交互
清水白石008
Python题库pythonpythonwebsocket交互
实现实时通信:使用PythonWebSocket与服务器进行交互在现代网络应用中,实时通信变得越来越重要。无论是在线聊天、股票交易还是游戏,能够即时交换数据是提升用户体验的关键。WebSocket协议作为一种实现双向通信的标准,提供了有效的解决方案。本文将带你深入理解如何使用Python编写一个简单的WebSocket客户端,与服务器进行实时通信。一、WebSocket协议概述1.1WebSock
高校网站群及融媒体中心建设方案
武汉唯众智创
高校网站融媒体中心建设方案
一、项目背景随着信息技术的飞速发展,互联网已成为高校展示形象、传播信息、服务师生、沟通社会的重要渠道。然而,目前许多高校在网站建设和媒体传播方面存在以下问题:网站分散、缺乏统一规划:各高校内部往往存在多个部门或学院独立建设网站的情况,导致信息分散,缺乏统一性和连贯性,不利于对外展示学校整体形象。内容更新不及时、互动性不强:部分网站内容陈旧,更新不及时,无法满足用户获取最新信息的需求;同时,网站互动
API接口到底是什么
小Mie不吃饭
分布式笔记APImicrosoft
目录一、API概述二、API接口的定义与基本概念(一)什么是API接口(二)API接口的组成要素(三)API接口的类型WebAPI库API远程API三、API接口的工作原理(一)请求与响应机制(二)数据传输与格式JSON格式XML格式二进制格式(三)认证与授权机制基本认证令牌认证一、API概述在当今数字化时代,无论是我们日常使用的手机应用,还是企业间复杂的业务协同,背后都离不开一个看似神秘却又无处
神经网络初始化 (init) 介绍
迷路爸爸180
神经网络人工智能深度学习初始化init
文章目录引言1.初始化的重要性1.1打破对称性1.2控制方差1.3加速收敛与提高泛化能力2.常见的初始化方法及其应用场景2.1Xavier/Glorot初始化2.2He初始化2.3正交初始化2.4其他初始化方法3.如何设置初始化4.基于BERT的文本分类如何进行初始化4.1项目背景4.2模型构建4.3模型训练与评估4.4结果分析结论参考资料引言在深度学习的世界中,构建一个高效且性能优异的神经网络模
七大设计原则之里氏替换原则
拙野
设计模式里氏替换原则java
目录一、什么是里氏替换原则?二、里氏替换原则的应用三、不符合里氏替换原则的情况一、什么是里氏替换原则?里氏替换原则,英文叫LiskovSubstitutionPrinciple,简称LSP(老色皮,哈哈)。里氏替换原则,其实是没有我们前面,说的SRP和OCP比较见名知意一些。根据他们两个的中文名称,我们都很容易联想到他的定义。比如,单一职责原则,就是一个类或者模块只负责一个职责。而开闭原则,根据名
解放双手,批量绕过403
天启互联网工作室
安全测试工具linux运维网络服务器python
将dirsearch扫描出来的结果复制到url.txt,如下所示url.txt[21:18:16]502-0B-/var/log/exception.log[21:18:21]502-0B-/WEB-INF/jetty-env.xml[21:18:22]502-0B-/WEB-INF/weblogic.xml[21:18:27]502-0B-/wp-json/wp/v2/users/[21:18:
第三篇:字符串的有效长度JavaScript
Shirley~~
javascript
这是一个求有效字符串长度的题目,在此之前复习一个简单的正则表达式正则表达式:用来定义一个字符串的规则;计算机可根据表达式来判断一个字符串是否符合规则,也可以将符合内容的字符串从一段内容中提取出来。^字符串的开头$字符串的结尾[a-zA-Z]任意字母[a-z]任意小写字母[0-9]任意数字[^]除了[^0-9]除了0-9test()用来检查一个字符串是否符合规则具体代码letstr='abcbgtd
使用 Hadoop 实现大数据的高效存储与查询
王子良.
经验分享大数据hadoop分布式
欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Fli
Python中常见关键字及其用法介绍
xiaoweids
编程语言Pythonpython开发语言
这篇文章主要介绍了Python中有哪些关键字及关键字的用法,分享python中常用的关键字,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下Python有哪些关键字Python常用的关键字1and,del,from,not,while,as,elif,global,or,with,assert,else,if,pass,yield,break,e
DrissionPage下载图片示例代码
高质量海王哦
DrissionPage爬虫python
DrissionPage实现翻页爬取并下载图片img.save()和图片字节获取img.src()方法fromDrissionPageimportChromiumPage,ChromiumOptionspage=ChromiumPage()page.get('https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4')foriinrange(3):#循环3次,实
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发布消息