- python项目练习——7.网站访问日志分析器
F——
python项目练习python信息可视化数据分析数据挖掘开发语言学习
项目功能分析:这个项目可以读取网站的访问日志文件,统计访问量、独立访客数、访问来源等信息,并以图表或表格的形式展示出来。这个项目涉及到文件操作、数据处理、数据可视化等方面的技术。示例代码:importrefromcollectionsimportCounterimportmatplotlib.pyplotaspltdefparse_log_file(log_file):#读取日志文件内容witho
- opencv 十八 python下实现0缓存掉线重连的rtsp直播流播放器
摸鱼的机器猫
opencv实战opencvpython缓存
使用opencv打开rtsp视频流时,会因为网络问题导致VideoCapture掉线;也会因为图像的后处理阶段耗时过长导致opencv缓冲区数据堆积,从而使程序无法及时处理最新的数据。为此对cv2.VideoCapture进行封装,实现0缓存掉线重连的rtsp直播流播放器,让程序能一直处理最新的数据。代码实现fromcollectionsimportdequeimportthreadingimpo
- list.sort()&&Collections.sort()深入理解
有点野的程序猿
经验总结listjava数据库开发语言
list.sort()&&Collections.sort()文章目录list.sort()&&Collections.sort()背景相关代码代码一代码二原理举一反三业务场景考虑背景业务中经常用到List的sort()方法,但是对于其中return的-1,0,1理解不到位,导致业务出现错误;网上对于-1,0,1的表述并不是很清楚,今天详细聊一聊。相关代码先分享两段代码业务逻辑:通过student
- [Java安全入门]六.CC2+CC4+CC5+CC7
网安小丑
JAVA安全java安全python网络空间安全
一.前言与前面几条cc不同的是,cc2的依赖是4.0版本,并且解决了高版本无法使用AnnotationInvocationHandler类的弊端。cc2使用javassist和PriorityQueue来构造链。二.添加依赖org.apache.commonscommons-collections44.0org.javassistjavassist3.22.0-GA三.构造链ObjectInput
- 集群方式下的java Redis锁 lua脚本
成长之旅
后端java
下面说一下集群方式redis下的原子锁带超时时间java代码如下:Listkeys=Collections.singletonList("test_key1");System.out.println("打印前::"+jedisCluster.get("test_key1"));//获取lua脚本这里你可以所以我是放在META-INF/scripts/redis/test.lua路径下,//获取到之
- 一线大厂面试真题——Collection 和 Collections 有什么区别
似来
Java基础面试题面试职场和发展java开发语言
(1)Collection是最基本的集合接口,Collection派生了两个子接口list和set,分别定义了两种不同的存储方式。(2)Collections是一个包装类,它包含各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等)。此类不能实例化,就像一个工具类,服务于Collection框架。
- JVM,GC算法,垃圾回收器,类加载器,进行线上JVM性能调优。
刘小董
学习心得JAVAJVMjvm
JVM(JavaVirtualMachine,Java虚拟机)是Java程序的运行环境,它在操作系统上提供了一个抽象层,使得Java程序可以独立于硬件平台运行。JVM有自己的指令集和内存管理机制,它负责将Java字节码转换为机器码并执行。垃圾回收(GarbageCollection,GC)是JVM的一个重要特性,它负责自动回收不再使用的内存。GC的目标是尽可能地回收垃圾对象,以释放内存空间,并确保
- WPF中使用LiveCharts绘制散点图
两仪风
wpf
一、背景这里的代码使用MVVM模式进行编写二、ModelpublicclassDataPoint{publicdoubleX{get;set;}publicdoubleY{get;set;}}三、ViewModelpublicclassScatterChartViewModel{publicSeriesCollectionSeries{get;set;}publicScatterChartView
- Dropping Balls(UVA 679)
Fool256353
算法数据结构c++
网址如下:DroppingBalls-UVA679-VirtualJudge(vjudge.net)(第三方网站)二叉树别说了,我只会模拟,最后用时530ms结果算法书给出了一个优化的解法:因为小球要么往左,要么往右,根据到这个点有几个小球可以推断出当前点的状态,根据要求的第几个小球可以推断在这个点有多少个球往左走了,多少个球往右走了这样可以根据I直接推断出第I个的动向,配合D直接算出答案用时20
- python 字典排序
SkTj
orderedDict保持元素插入时的顺序fromcollectionsimportOrderedDictd=OrderedDict()d['foo']=1d['bar']=2d['spam']=3d['grok']=4Outputs"foo1","bar2","spam3","grok4"forkeyind:print(key,d[key])
- unity图集刷新工具
那个妹子留步
unityui图集
usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;usingUnityEditor;usingUnityEngine;usingUnityEngine.U2D;usingUnityEditor.U2D;publicclassUITools{#region刷新图集内容[MenuItem("UGUI工具/刷新图
- Java8新特性之stream、map和reduce
义阳
学习总结java8集合
Java8新了streamAPI,需要注意的是Stream和I/O中的流是没有关系的,这个stream主要是要来处理集合数据的,可以将其看作一个高级迭代器。在Collection接口中新增了非抽象的stream方法来获取集合的流。另外,Java8中新增了一个Optional类用于处理空指针异常,该类位于java.util包下,使用这个类可以更好的支持函数式编程,并且可以简化以前对null的判断。s
- java sort 面试题目
youyouxiong
排序算法算法
Java排序是面试中经常出现的主题,因为它不仅涉及Java集合框架中的排序方法,还涉及到基本的排序算法和性能优化。以下是一些关于Java排序的面试题目:解释Java中的Collections.sort()方法是如何工作的?Collections.sort()方法用于对List进行排序。它使用了TimSort算法,这是一种基于合并排序和插入排序的混合体,旨在提供最佳的性能。Java中的Arrays.
- 分享一些开源的游戏仓库
电子云与长程纠缠
杂项游戏
1.CnC_Remastered_Collection红色警戒95版本https://github.com/electronicarts/CnC_Remastered_Collectiongitee仓库分流:https://gitee.com/loswdarmy/CnC_Remastered_Collection2.Far-Cry-1-Source-Full孤岛惊魂1https://github.
- Unity InputField宽度自适应内容
不在同一频道上的呆子
unity游戏引擎
在Unity中,InputField在我们输入内容时,只会显示适应初始宽度的最新内容,或者自定义长度内容。那么,要实现宽度自适应内容就需要另寻他法了。以下是通过一个控制脚本来实现的一个简单方法。直接上脚本:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;usin
- 第二十二 查询、检索、搜索
smallswan
Rust七十二变开发语言
查询在计算机中十分广泛的应用。在字符串或者文本文件中查询关键字,模式匹配,正则表达式。在数组、树、哈希表等数据结构中查询指定数据在数据库中查询在海量非结构文件中查询搜索引擎模式匹配模式匹配是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配。模式匹配经典问题:strStr()DFA算法usestd::collections::BTreeSet
- Unity3D使物体跟随鼠标旋转
小pig饲养员
Unity笔记unity3d
代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassRotateToMouse:MonoBehaviour{publicfloatspeed;privateVector2direction;privateVector2direction2;voidUpdate(){FollowM
- 内存安全编程语言
数字化信息化智能化解决方案
安全算法
内存安全编程语言是指在编程时能够自动管理内存,避免内存泄漏、野指针等内存安全问题的编程语言。这些语言通常使用垃圾回收机制(GarbageCollection)来自动回收不再使用的内存,或者使用智能指针等机制来避免野指针问题。以下是一些常见的内存安全编程语言:Java:Java是一种流行的内存安全编程语言,它使用垃圾回收机制来自动管理内存。Java程序员不需要手动分配和释放内存,这大大降低了内存泄漏
- 机器学习-02-机器学习专家系统
IT从业者张某某
2024年机器学习机器学习人工智能
总结本系列是机器学习课程的第02篇,主要介绍机器学习中专家系统的应用介绍本门课程的目标完成一个特定行业的算法应用全过程:定义问题(ProblemDefinition)->数据收集(DataCollection)->数据分割(DatasetSpitup)->模型训练(ModelTraining)->模型评估(ModelEvaluation)->应用部署(SystemDeployment)->改变世界
- 学习札记-Java8系列-10-详解Stream操作
你的学习札记
学习札记-Java8系列-10-详解Stream操作操作步骤使用StreamAPI操作数据可以分为以下几个步骤:1)创建流:通过数据源(如:集合、数组)获取流2)处理流:(中的数据)对流中的数据进行处理(处理是延迟执行的)3)收集流:(中的数据)通过调用收集方法,真正执行处理操作,并产生结果创建流创建一个流非常简单,有以下几种常用的方式:1)Collection的默认方法stream()和para
- 210. 课程表 II(Java、DFS)
低调的骏马
算法深度优先java图论
比起207题有向图环的检测,多了一个要求是将后序遍历的结果反转,即得到拓扑排序的结果//记录后序遍历结果Listpostorder=newArrayList[]buildGraph(intnumCourses,int[][]prerequisites)DFS遍历voidtraverse(List[]graph,ints)反转结果Collections.reverse(postorder);clas
- 【Hadoop】在spark读取clickhouse中数据
方大刚233
HadoopScalahadoopsparkclickhouse
读取clickhouse数据库数据importscala.collection.mutable.ArrayBufferimportjava.util.Propertiesimportorg.apache.spark.sql.SaveModeimportorg.apache.spark.sql.SparkSessiondefgetCKJdbcProperties(batchSize:String="
- resultmap中collection每次只能查询到一条数据
小喳喳进阶
mybatisMybatiscollection一条记录
1、原因如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。2、解决办法级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的。但在mybatis中主从表需要为相同字段名设置别名。设置了别名就OK了。例子:主表Standard,从表StandEntity,均有名为id的字段(依据下面的select中更名的字段id别名se_id,在此将相同的字段名
- 比较Python和Rust的内存管理机制
python慕遥
pythonrust算法
大家好,内存管理是编程语言的基础,它确保着资源被有效利用,不同的编程语言采用不同的策略来管理内存。有些语言需要程序员手动管理内存,有些语言则自动化了内存管理过程。Python和Rust都采用了垃圾收集(GarbageCollection)机制来管理内存,但它们各自的实现方式有很大的不同。1.Python:引用计数与分代式垃圾收集Python使用称为“引用计数”的技术进行垃圾收集,每个对象都有一个计
- Python 的映射数据类型有哪些?零基础小白入门学习必看
python阿喵
1映射类关系Python的collections.abc模块内拥有Mapping和MutableMapping这两个抽象基类,它们为dict和其他类似的类型提供了接口定义。mutable/ˈmjuːtəbl/adj.Capableoforsubjecttochangeoralteration.它们之间的类关系如下图所示:箭头从子类指向父类,抽象类和抽象方法的名称以斜体显示。首先是Container
- 深入探索Java集合框架
地瓜伯伯
面试java数据结构
在Java编程中,数据的组织和存储是核心部分。为了更有效地管理和操作这些数据,Java提供了一个强大且灵活的集合框架(JavaCollectionFramework,JCF)。这个框架不仅简化了数据结构的处理,还提供了高效的性能。在本文中,我们将深入探讨Java集合框架的组成、特性和用法。目录一、Java集合框架的概述二、主要集合接口1.List接口2.Set接口3.Queue接口4.Deque接
- Java_3_集合框架
java
一、思维导图Java集合框架.xmind二、知识点及实践2.1、CollectionList列表(元素有序并且可以重复的集合,被称为序列)1.ArrayList排列有序,可重复底层使用数组查询快,增删慢线程不安全当容量不够时,ArrayList是当前容量*1.5+12.LinkedList排列有序,可重复底层使用双向循环链接数据结构查询慢,增删快线程不安全3.Vector排列有序,可重复底层使用数
- Python 实现 2048 游戏
TheWanderers
Python项目python开发语言后端
Python实现2048游戏一、实验介绍2048是20岁的GabrieleCirulli开发的一款数字游戏,曾风靡一时。这次实验我们用200行Python代码,在终端环境中实现一个2048规则的小游戏。二、实验知识点本节实验中将学习和实践以下知识点:Python基本知识curses终端图形编程库random随机数模块collections容器数据类型库状态机的概念三、适合人群本课程通过Python
- 你必须知道postman和Jmeter做接口测试区别
测试界的世清
技术分享软件测试postmanjmeter测试工具
1.用例组织方式Jmeter的组织方式相对比较扁平,它首先没有WorkSpace的概念,直接是TestPlan,TestPlan下创建的ThreadsGroup就相当于TestCase,并没有TestSuite的层级。Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就相当于是Project,而Collection中可以创建不定层级的Folde
- 整理ArrayList和LinkedList中的方法
@业精于勤荒于嬉
java
ArrayList和LinkedList是Java中两种常用的列表(List)实现。它们提供了许多相同的方法,但由于内部实现的不同,这些方法的性能可能会有所不同。以下是一些常用的方法:添加元素add(Ee):在列表的末尾添加一个元素。add(intindex,Eelement):在指定的索引位置插入一个元素。addAll(Collectionc):将另一个集合的所有元素添加到列表的末尾。addAl
- 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