算法面试题深度解析:LeetCode2012.数组元素的美丽值求和计算与多方案对比原题给你一个下标从0开始的整数数组nums。对于每个下标i(1nums[i];1分:不满足2分条件,但满足nums[i-1]
Redis 内存淘汰策略深度解析
月落星还在
redisredis数据库缓存
Redis作为高性能的内存数据库,其内存资源的高效管理直接关系到系统的稳定性和性能。当Redis的内存使用达到配置的最大值(maxmemory)时,新的写入操作将触发内存淘汰机制(EvictionPolicy),以释放空间存储新数据。本文将深入探讨Redis的内存淘汰策略、实现原理、适用场景及最佳实践。一、内存淘汰策略概述Redis的内存淘汰策略决定了在内存不足时,如何选择需要删除的键来释放空间。
字典树(Trie) 理论知识复习及精选例题解析
BrainWen1
算法javac++数据结构pythonleetcodevscode
字典树理论知识复习及精选例题解析一、字典树理论知识二、精选例题解析例题1.P8306【模板】字典树例题2.P2580于是他错误的点名开始了例题3.P10471最大异或对TheXORLargestPair三、字典树的使用思路和细节使用思路细节注意四、总结一、字典树理论知识1.定义字典树(Trie)字典树(Trie)字典树(Trie),又称前缀树,是一种树形数据结构,用于高效地存储和检索字符串集合。它
c++各种数据类型大小分析
qwe954443563
c++
在c++中可以通过sizeof关键字来求出各数据类型大小;代码如下:intmain(){cout<<"int类型:"<<"大小:"<<sizeof(int)<<"int最小值:"<<INT_MIN<<"int最大值:"
量化评估--年化收益、最大回撤、阿尔法、贝塔、夏普比率解释
土戈
python与量化交易
年化收益率年化收益率是把当前收益率(日收益率、周收益率、月收益率)换算成年收益率来计算的。例如日收益率是万分之一,则年化收益率是3.65﹪(平年是365天)。年化收益率=[(投资内收益/本金)/投资天数]*365×100%最大回撤最大回撤率:在选定周期内任一历史时点往后推,产品净值走到最低点时的收益率回撤幅度的最大值。最大回撤是一个重要的风险指标,对于对冲基金和量化策略交易,该指标比波动率还重要,
手撕B树
666HZ666
数据结构b树数据结构算法
引入已经学习了二叉查找树,下面开始讨论m叉查找树对于m叉查找树的查找效率的提升,需要:除了根结点外,任何结点至少有[m/2]个分叉,即至少含有[m/2]-1个关键字对于任何一个结点,其所有子树的高度都要相同一、B树的定义B树,又称为多路平衡查找树,B树中所有结点的孩子个数的最大值称为B树的阶,通常用m表示对于一棵m阶B树,其可以是空树,也可以是具有以下特性的m叉树:树中每个结点至多有m棵子树,即至
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
鱼馬
网络网络安全web安全笔记测试工具职场和发展
最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常基础的文章,大神请飘过,谢谢各位看官!文章目录一.工具&术语1.网安术语2.常用工具3.推荐文章二.常见攻击1.SQL注入2.XSS跨站3.越权漏洞4.CSRF跨站请求伪造5.支付漏洞三.音乐异或解密示
动手学深度学习V2.0(Pytorch)——10.感知机(激活函数)
吨吨不打野
动手学深度学习pytorchpytorch深度学习机器学习
文章目录1.感知机2.多层感知机2.1异或问题2.2单隐藏层2.3激活函数2.3.1logistics函数/sigmoid激活函数2.3.2tanh函数2.3.3sigmoid函数和tanh函数的异同/优缺点2.3.4relu2.4多类分类2.5多隐藏层3Q&A3.1神经网络中一层的定义是什么3.2感知机无法解决XOR问题,多层感知机虽然可以解决,但是还是被SVM替代是为什么?3.3不同任务的激活
池化的定义与核心思想
code 旭
AI人工智能学习pythonnumpy人工智能
一、池化的定义与核心思想定义:池化是卷积神经网络(CNN)中的一种下采样操作,用于降低特征图的空间维度(宽高),保留主要特征。核心目标:减少计算量:缩小特征图尺寸,降低后续层参数规模。增强模型鲁棒性:对微小平移、旋转等变化不敏感。防止过拟合:通过降维减少冗余信息。二、池化的数学公式1.最大池化(MaxPooling)取池化窗口内的最大值:yi,j=maxp=0kh−1maxq=0kw−1xi⋅
uniapp 滚动尺
走,带你去玩
前端javascript开发语言
scale组件代码(部分class样式使用到了uview1.0的样式){{item/10}}exportdefault{name:'Scale',components:{},props:{value:{type:String,default:'0.0'},//最小值min:{type:Number,default:0,},//最大值max:{type:Number,default:100,},//
Velodyne16线激光雷达点云数据中的线束(ring)是如何分布的
壹十壹
激光雷达编辑器
将sensor_msgs::PointCloud2转为pcl::PointCloud后的点云数据线束(ring)是从下往上进行递增排序。在下图中线束0为深蓝色,线束1是红色,线束2为淡蓝色,线束3为橘黄色,线束4为绿色,线束6为黄色。(一帧激光雷达点云的强度值在RVIZ中显示的颜色与该帧点云数据中激光雷达强度值的最大值有关)
【春招笔试真题】饿了么2025.03.07-开发岗真题
春秋招笔试突围
最新互联网春秋招试题合集java算法网络
饿了么2025.03.07-开发岗题目1️⃣:统计01串中0和1的个数,通过计算可能的交换方式确定不同字符串数量2️⃣:使用模板匹配技术识别验证码图片中的"#"符号分布模式3️⃣:构建字典树(Trie)优化异或查询,实现高效的数字黑板游戏整体难度这套题目整体难度适中,由简到难逐步递进:第一题是基础的计数问题,需要理解交换操作的特性第二题是模式识别问题,需要实现模板匹配第三题是高级数据结构应用,需要
25.Harmonyos Next仿uv-ui 组件 NumberBox 步进器组件范围限制
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!1.组件介绍NumberBox步进器组件的范围限制功能允许开发者设置数值的最小值和最大值,确保用户输入或调整的数值在合理的范围内。本文将详细介绍如何在HarmonyOSNEXT中设置和使用NumberBox步进器的范围限制功能。2.效果展示3.范围限制设置3.1
第十二届蓝桥杯大赛软件类省赛C++研究生组
_tomorrow
算法练习算法蓝桥杯
题目A卡片(5分,√)B直线(5分,√)C货物摆放(10分,√)D路径(10分,√)E回路计数(15分,√)F时间显示(15分,√)G砝码称重(20分,√)H异或数列(20分)I双向排序(25分)J分果果(25分)题目是全的,但是由于能力有限,后面有题目没做,分值和完成情况在题目后说明A卡片(5分,√)题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小蓝有很多数字卡
AtCoder ABC E - Min of Restricted Sum 题解
和旋_菾律
算法数据结构
根据输入考虑建图,x、y两个下标的边权为z,建无向图这样我们可以得到一些连通块。根据异或和的性质,对于每一个连通块,我们只要知道其中一个点的点权就能推出所有的点权。最小值考虑贪心,针对当前连通图所有点权二进制数的每一位,假如这一位是1,要想保留更多的1就让别的本位为1的数的这一位是0,于是统计每一位1的个数,若1比0多则起点这一位为1,这样保证了0多。判定可行性:深搜跑一边,如果遍历过了但是点权不
C++ 滑动窗口
不知道取啥耶
c++算法leetcode数据结构
前言C++中滑动窗口分两种,一种是给定窗口长度,还有一种是不定长窗口长度。本篇文章主要讲解这两种状态的滑动窗口,结合例题让读者更好的理解一、给定窗口长度K一般的,对于给定窗口长度的题,通常要求我们对窗口内的元素进行一些操作,解决一些问题,具体问题具体分析。给定窗口长度的题目通常要求解决以下问题:找到每个窗口内的最大值或最小值。计算每个窗口的和或平均值。统计满足条件的子数组数量。找到满足条件的最长或
Java Stream reduce()详解
Ben_F
java
reduce()是JavaStreamAPI中的一个终端操作,它用于将流中的元素逐个结合起来,生成一个值。换句话说,reduce()通过对流中的元素应用二元运算(一个接收两个输入参数并返回一个结果的操作),将多个元素“归约”成一个值。1.reduce()方法的作用reduce()用于从流中生成单一结果,常见的用途有:计算总和、乘积计算最大值、最小值将字符串、对象等组合成一个结果reduce()操作
FPGA学习——verilog捕捉信号上升沿下降沿
or_to
FPGAfpga开发学习
在FPGA使用中,常常需要进行信号的边沿检测,如在串口通信中,需要检测接收信号的下降沿来判断串口的的起始位。常用的方法就是:设计两个一位的寄存器,用来接收被检测的信号,系统时钟来一次记一次输入信号,如果用了两个寄存器直接异或就可以了;使用高频的时钟对信号进行采样,因此要实现上升沿检测,时钟频率至少要在信号最高频率的2倍以上,否则就可能出现漏检测。代码如下:moduleedge_detect(sys
两篇题解——理想的正方形deepseek做法
Cool_(wly)_Dino
deepseek算法数据结构c++学习开发语言
嗯,这道题看起来是要找一个n×n的正方形区域,使得该区域内最大值和最小值的差最小。那我得仔细看看题目要求。题目给了一个a×b的矩阵,要从中找出所有可能的n×n正方形,然后计算每个这样的正方形的max-min,最后取所有中的最小值。首先,我得想到怎么高效地计算每个n×n窗口的最大和最小值。因为直接遍历每个窗口然后找最大和最小的话,时间复杂度会很高。比如a和b都是1000的话,n是100的话,这样的窗
代码随想录|栈与队列|07滑动窗口最大值
Paper Clouds
算法数据结构c++leetcode
leetcode:239.滑动窗口最大值-力扣(LeetCode)题目给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。提示:1que;//入队,只有当队列为空或者当前元素大于等于队尾元素时,才将元素加入队列。voidpush(intval){while(!que.empty()&
搜广推校招面经三十九
Y1nhl
搜广推面经数据挖掘人工智能机器学习深度学习算法推荐算法
小红书﹣图搜一、两个整数的汉明距离两个整数之间的汉明距离是指这两个数字对应二进制位相同位置不同的个数。换句话说,它就是将一个整数变成另一个整数所需要改变的二进制位的数量。例如,如果两个整数在它们的二进制表示中有三个位置上的比特不同,那么这两个整数的汉明距离就是3。计算两个整数的汉明距离可以通过以下步骤实现:首先对这两个整数进行异或(XOR)运算。异或运算是按位操作,当且仅当输入位不同时输出为1。因
手撕力扣之图论:课程表、课程表 II、省份数量、等式方程的可满足性、情侣牵手、 实现 Trie (前缀树)、数组中两个数的最大异或值、判断二分图
weixin_39770712
数据结构与算法leetcode算法
拓扑排序:力扣207.课程表你这个学期必须选修numCourses门课程,记为0到numCourses-1。在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i]=[ai,bi],表示如果要学习课程ai则必须先学习课程bi。例如,先修课程对[0,1]表示:想要学习课程0,你需要先完成课程1。请你判断是否可能完成所有课程的学习?如果可以
【C语言】位操作符详解 - 《开心消消乐》
LuckiBit
C语言c语言关键字位运算按位或按位与位操作符
目录1.介绍2.位操作符列表3.按位操作符详解3.1按位与(&)示例输出3.2按位或(|)示例输出3.3按位异或(^)示例输出3.4按位取反(~)示例输出按位取反操作符(~)示例输出按位取反操作符详细解释3.5左移(>)示例输出4.应用实例4.1使用位掩码示例输出4.2设置特定位示例输出4.3清除特定位示例输出4.4翻转特定位示例输出5.结论6.参考文献7.结束语1.介绍位操作符用于在位级别上进行
有效的括号 删除字符串中的所有相邻重复项 逆波兰表达式求值 滑动窗口最大值
默默修炼的小趴菜
算法
1.给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。#includeusingnamespacestd;classSolution{public:boolisvalid(strings){stackst;if(s.size()%2!=0){re
山海经——AI思路
Cool_(wly)_Dino
deepseekc++
好的,我需要帮助用户解决这个关于《山海经》的问题。根据用户的问题描述,老师希望找到从第a座山到第b座山之间的某段路径(i,j),使得这段路径上的喜恶度之和最大。用户之前已经得到过一个使用分块算法处理区间最大值查询的C++代码,但现在的问题似乎有所不同,因为这里需要的是最大子数组和,而不是简单的区间最大值。首先,我要确认用户的具体需求。用户提到每座山只能到达下一座山,也就是路径是连续的,所以问题转化
Enum 枚举
120153216
enum枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
Java8简明教程
bijian1013
javajdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
Oracle表维护 快速备份删除数据
cuisuqiang
oracle索引快速备份删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
java多态内存分析
麦田的设计者
java内存分析多态原理接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
spring拦截器的一个简单实例
bijian1013
javaspring拦截器Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
[Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
Netty学习笔记
bylijinnan
javanetty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
oracle 的性能优化
cuishikuan
oracleSQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
Shell变量和数组使用详解
daizj
linuxshell变量数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
[Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
js实现登录时记住用户名
hw1287789687
记住我记住密码cookie记住用户名记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
算法机试题
李亚飞
java算法机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
hibernate调用返回游标的存储过程
Supanccy2013
javaDAOoracleHibernatejdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p