解法1:当然可以冒泡排序,时间复杂度O(n2n^2n2)解法2:单指针循环两次,第一次循环将所有的0交换到前面;第二次循环将所有的1交换到0的后面classSolution{publicvoidsortColorsBySinglePointer(int[]nums){intzeroCnt=0,p=0;for(inti=0;i
DeepSeek爆火,背后模型竟藏着这些秘密!
qq_23519469
ai
DeepSeek是什么来头最近,AI圈可是被一个名字刷爆了屏,那就是DeepSeek!它就像一颗横空出世的超级新星,在全球范围掀起了一阵狂热的追捧潮,这热度,简直了!大家都在疯狂讨论它,各种测评、对比层出不穷。它到底有啥过人之处,能让这么多人都为之疯狂?今天咱就来好好唠唠。DeepSeek,全称杭州深度求索人工智能基础技术研究有限公司,是一家专注于开发先进大语言模型(LLM)和相关技术的企业。它成
Python-有效字母异位词
m0_37763377
python哈希算法算法数据结构
一、什么是字母异位词字母异位词是指由相同字母组成但排列顺序不同的单词。例如,"eat"、"tea"和"ate"都是字母异位词,因为它们由相同的字母组成,只是排列顺序不同。二、思路(一)暴力解法这里可以用两层循环来判断2个字符串的元素是否一样,显然时间复杂度为O(n²),在这里大家可以自己写一下,文章就不再提供演示。(二)哈希表解法1.什么是哈希表?哈希表(HashTable),也称为散列表,是
每日一题——二叉树的直径
tt555555555555
面经算法题C语言数据结构算法leetcode
二叉树的直径问题描述示例示例1示例2提示问题分析算法设计代码实现复杂度分析测试用例测试用例1测试用例2总结问题描述给定一棵二叉树的根节点,返回该树的直径。二叉树的直径是指树中任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点root。两节点之间路径的长度由它们之间边数表示。示例示例1输入:root=[1,2,3,4,5]输出:3解释:最长路径的长度为3,例如路径[4,2,1,3]或
密码安全:如何识别强弱密码,并打造铁壁防线!
喵手
零基础学Java安全php开发语言
全文目录:开篇语前言:一场关于密码的角力赛目录密码的弱点:为什么弱密码是个大问题如何定义强密码?强密码的特点:举个例子:如何识别密码强弱?简单技巧帮你判断1.**密码长度:是否足够长?**示例代码演示代码解释:测试结果示例:2.**复杂度:是否包含特殊字符?**示例代码演示代码解释:测试结果示例:小结:3.**模式识别:是否包含常见模式?**️密码管理小技巧:打造更安全的数字生活1.**使用密码管
Websoft9 开源软件实操平台:快速积累企业级软件技能,深入理解真实业务场景
开源创业
引言:打破“纸上谈兵”的实训困境当前高校技术教育普遍面临一个矛盾:学生对开源工具的理论知识掌握充分,但在真实业务场景中常因环境配置复杂、工具链割裂而难以落地。例如,部署一套完整的电商系统需协调数据库、服务器、安全策略等多环节,传统虚拟机环境难以模拟企业级复杂度。Websoft9作为开源软件自动化部署工具,通过预集成200+企业级应用模板(如GitLab、Odoo、Jenkins)和全流程管理能力,
现在的AI,到底是背答案的高手,还是真正的会思考
沐凡资源
人工智能
你的孩子用AI写作业,你以为他在抄答案,但AI可能连自己都不知道答案是怎么来的。最近朋友圈被小学生用DeepSeek秒杀作业的新闻给刷屏了。家长们一方面惊叹,“这玩意儿比家教还靠谱呢”,另一方面又焦虑,“孩子会不会被AI养废啦”。这让我也产生了一个疑问:现在的AI究竟是背答案的复读机呢,还是真会推理的最强大脑?于是我搜索了很多资料来了解这件事。毕竟这事儿可不单单跟作业有关系——它对未来的AI起着决
iOS 模块化架构设计:主流方案与实现详解
Ethan. L
架构ios架构
随着iOS工程规模的扩大,模块化设计成为提升代码可维护性、团队协作效率和开发灵活性的关键。本文将探讨为什么需要模块化,介绍四种主流的模块化架构方案(协议抽象、依赖注入、路由机制和事件总线),并通过代码示例和对比表格帮助开发者选择适合的方案。一、为什么需要模块化?1.代码可维护性随着工程规模的增长,代码量迅速增加,模块化可以将代码拆分为独立的功能模块,降低代码复杂度,提升可维护性。2.团队协作效率模
SAP-ABAP:SAP外网接口调用技术全景指南
爱喝水的鱼丶
VIP详情查看专栏SAP业务学习捷径SAP-ABAP开发基础详解SAPABAPERP开发运维运维HTTP接口调用
SAP外网接口调用技术全景指南1.核心调用方式对比矩阵方法类型协议支持适用场景开发复杂度维护成本典型应用案例HTTPClientREST/HTTP通用API集成★★☆低调用第三方支付接口SOAPProxySOAP/WSDL标准化Web服务★★★中银行系统对接ODataClientODataSAP生态集成★★☆低Fiori应用数据扩展PI/PO中间件多协议转换企业级复杂集成★★★★高跨系统业务流程编
人工智能的未来:从基础到前沿的探索与展望
小二爱编程·
人工智能aiAI编程AI写作AI作画
1.人工智能简介内容概述:人工智能(AI)是指模拟和执行人类智能任务的技术。随着计算能力和数据量的增加,AI在各个领域取得了显著进展,从自动化的基本任务到解决复杂的实际问题,人工智能正渗透到我们生活的各个方面。2.人工智能的种类与发展内容概述:AI的种类可以按智能的复杂度分为三大类:弱人工智能(NarrowAI):目前大多数应用都属于弱AI,如语音助手、自动驾驶等。它们专注于特定任务,并且无法扩展
红黑树详解?红黑树设计的背景?
F_windy
java
红黑树详解1.红黑树的基本概念红黑树(Red-BlackTree)是一种自平衡的二叉搜索树(BST),通过节点颜色(红或黑)和一组规则来保持近似平衡,确保插入、删除、查找等操作的时间复杂度为O(logn)。它的核心思想是通过颜色标记和旋转操作,减少树的高度差异,从而提升性能。2.红黑树的五大规则红黑树必须满足以下规则:颜色规则:每个节点非红即黑。根节点规则:根节点必须是黑色。叶子节点规则:所有叶子
IT圈大实话!卷运维不如卷网络安全,这可能是你转行的最后的机会
程序员晓晓
运维web安全干货分享计算机网络安全渗透测试职场发展
前言2025年马上进入金三银四的行情,最近我也去问了一下行业内的小伙伴,我发现最近很多从事运维的选择了辞职,转行到了网络安全这个发展路线。说实话,运维工程师这个岗位在IT行业里面确实是处于最底层的,不管什么环节出现问题,基本都是运维背锅。,薪资水平也比不上别的岗位。一般运维的薪资水平大多数都是6-9K,还要高频出差年轻的时候干几年确实还可以,但是成家立业之后就不合适到处出差了。运维的事情非常多,不
面试经典算法150题系列-除自身以外数组的乘积
betterManchester
面试经典算法题150题算法面试java
除自身以外数组的乘积给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例1:输入:nums=[1,2,3,4]输出:[24,12,8,6]示例2:输入:nums=[-1,1,0,-3,3]输出
近期生活随笔
飞天kuma
生活杂谈创业人生生活
因为开店的原因,一直觉得没什么能和大家去分享的,但是最近听到了之前同事的情况,比较之下,还是准备写点什么。因为每天跟不同的客户打交道,所以现在会不会购买东西,也大概心里有数了,说话少,问的少的,往往比各种问的购买可能性会更高,因为可能一个产品有很多种,比如数据线,有三合一的,有1米的,有1.5米的,有2米的,本身在没有想好的情况下,让我去推荐,我也不知道需求点在哪,当我推荐了一圈之后,往往得到的答
算法通关----除自己自身以外数组乘积
fang4084
算法通关算法
题目来源:leetcode--238题目内容:给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例1:输入:nums=[1,2,3,4]输出:[24,12,8,6]示例2:输入:nums=[-
软件测试服务商怎么选,看这篇文章就够了
阿里云
软件行业的发展历程中,软件测试从最初单纯依靠大量人工进行测试,逐渐向工具化、平台化转变。早期,由于软件开发规模相对较小,技术迭代速度较慢,软件测试主要依赖人工手动执行各类测试用例,耗费大量人力与时间。随着软件复杂度提升、开发周期缩短,自动化测试工具应运而生,帮助测试人员提高效率,减少重复性工作。而近年来,云测试平台的兴起,更是打破了地域与设备限制,实现了测试资源的集中管理与高效利用。这一系列变迁不
如何用贡献法破解90%的数组难题?5大经典案例深度解析
六七_Shmily
数据结构与算法分析python算法开发语言
如何用贡献法破解90%的数组难题?5大经典案例深度解析引言在算法竞赛和面试中,数组类问题始终占据着重要地位。面对看似复杂的数组题目,老手们往往能一眼看穿本质——因为他们掌握了一个被称为"贡献法"的核武器。这种方法能将时间复杂度从O(n²)优化到O(n),将空间复杂度从O(n)压缩到O(1)。本文将深入剖析贡献法的核心思想,并通过5个经典案例揭示其精妙之处。一、贡献法的底层逻辑贡献法(Contrib
牛客周赛 Round 54 题解(A~E)
TCaaaaa
算法图论c++
牛客周赛Round54题解A清楚姐姐的糖葫芦思路解析:显然只需要数字符串的字符o的个数即可。时间复杂度:O(N)O(N)O(N)代码块:voidsolve(){strings;cin>>s;intc=0;for(autov:s){c+=v=='o';}cout>a>>b>>x;llres1=x*a;llv=(x+2)/3*b;res1=min(res1,v);res1=min(res1,x/3*b
java实现XZordering算法(附带源码)
Katie。
Java实战项目java算法开发语言
Java实现XZOrdering算法详解目录项目背景与简介1.1项目概述1.2开发动机与应用场景1.3XZOrdering算法简介相关理论知识与数学基础2.1空间映射与局部性保持2.2Morton编码(Z-order)的原理2.3位交叉(BitInterleaving)技术2.4算法复杂度与性能考量系统架构与模块设计3.1整体架构设计3.2主要模块划分3.3类图与流程图项目实现思路与详细设计4.1
Android第三次面试(Java基础)
每次的天空
面试职场和发展javaandroid
面试题一:在Android里,Array和ArrayList区别?定义与大小:数组声明时要指定大小,之后固定;ArrayList动态,无需提前定大小。性能:二者访问元素快,时间复杂度O(1);数组插入删除繁琐,ArrayList尾部添加快,其他位置操作慢。数据类型:数组能存基本类型和对象,ArrayList只能存对象,存基本类型需用包装类。方法功能:数组自身方法少,靠Arrays类;ArrayLi
又叕最后的作业hhhhhhhhhh
MapleInori
编程题目算法c++
目录题目A:城堡题目B:山洞寻宝图题目C:迷宫题目D:n皇后题目E:最大装载问题题目F:跳马问题(2点)题目G:布线问题题目A:城堡题目描述某城堡被分割成m×n(m≤50,n≤50)个方块,每个方块的四面可能有墙,“#”代表有墙,没有墙分割的方块连在一起组成一个房间,城堡外围一圈都是墙。如果1、2、4和8分别对应左墙、上墙、右墙和下墙,则可以用方块周围每个墙对应的数字之和来描述该方块四面墙的情况,
机器学习之向量化
珠峰日记
AI理论与实践机器学习人工智能
文章目录向量化是什么为什么要向量化提升计算效率简化代码与增强可读性适配模型需求怎么做向量化数据预处理特征提取特征选择向量构建机器学习与深度学习中向量化的区别数据特征提取方式机器学习深度学习模型结构与复杂度机器学习深度学习计算资源需求机器学习深度学习数据规模适应性机器学习深度学习向量化是什么向量化是把数据转化为向量形式进行表示与处理的过程。在机器学习与深度学习的范畴内,现实中的各类数据,像文本、图像
从FFmpeg命令行到Rust:多场景实战指南
Yeauty
ffmpegrustvideo-codec
FFmpeg作为功能强大的多媒体处理工具,被广泛应用于视频编辑、格式转换等领域。然而,直接使用FFmpeg的命令行界面(CLI)可能会遇到以下挑战:命令复杂度高:FFmpeg的命令行参数众多且复杂,初学者可能难以掌握,配置错误时调试困难。集成困难:在Rust等现代编程语言中,直接调用FFmpeg的C语言API需要处理复杂的内存管理和安全性问题,可能引发内存泄漏、非法访问等问题。为了解决这些问题,R
分析Windows操作系统的容量为什么会越来越大?
网硕互联的小客服
服务器运维网络windows
Windows操作系统容量逐渐增大的原因是多方面的,反映了技术进步、用户需求变化以及微软在功能、兼容性、安全性等方面的权衡。以下是关键因素的分析:1.功能扩展与复杂度提升新功能集成:每代Windows都会引入新功能(如Cortana、虚拟桌面、WSL、DirectStorage等),这些功能需要额外的代码库、图形界面和支持文件。多场景支持:Windows需兼顾个人电脑、工作站、游戏设备、企业服务器
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