- 规划将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager
zangdalei
Market
尽管Azure资源管理器提供了许多精彩功能,但请务必计划迁移,以确保一切顺利进行。花时间进行规划可确保执行迁移活动时不会遇到问题。Note以下指导的主要参与者为Azure客户顾问团队,以及与客户合作迁移大型环境的云解决方案架构师。此文档随着出现新的成功模式而持续更新,因此,请不时地回来查看,了解是否有新的推荐内容。迁移之旅包括四个常规阶段:计划技术注意事项和权衡根据技术要求大小、地理区域和操作方案
- 游戏研发高效利器:SVN资源动态项目管理解决方案
还债大湿兄
游戏项目管理
一、问题背景与解决方案传统资源分发痛点:人工打包耗时:平均每次版本发布需2小时版本隔离:不同团队无法同时使用多个版本资源冲突:美术/QA/策划资源版本不一致动态管理方案优势:二、系统核心流程//完整工作流控制器voidGameResourceManager::executeFullWorkflow(){//1.凭证验证if(!validateCredentials()){showError("认证
- Beam2.61.0版本消费kafka重复问题排查
隔壁寝室老吴
kafkalinq分布式
1.问题出现过程在测试环境测试flink的job的任务消费kafka的情况,通过往job任务发送一条消息,然后flinkwebui上消费出现了两条。然后通过重启JobManager和TaskManager后,任务从checkpoint恢复后就会出现重复消费。当任务不从checkpoint恢复的时候,任务不会出现重复消费的情况。由此可见是beam从checkpoint恢复的时候出现了重复消费的问题。
- Sonatype Nexus3安装配置及使用
無法複制
nexus
1、简介SonatypeNexusRepositoryManager是一款强大的仓库管理工具,用于存储、管理和发布软件组件。它能够支持多种格式的仓库,如Maven、npm、Docker等。在企业开发中,私有Maven仓库常用于存储自定义依赖和发布组件,确保代码安全性和内部共享。本文将从服务器环境搭建、Nexus安装与配置、仓库创建、依赖上传,再到Maven项目中使用私有仓库的全过程,帮助你掌握如何
- TensorFlow Serving学习笔记3: 组件调用关系
一、整体架构TensorFlowServing采用模块化设计,核心组件包括:Servables:可服务对象(如模型、查找表)Managers:管理Servable生命周期(加载/卸载)Loaders:负责Servable的初始化状态管理Sources:提供新版本Servable的LoaderAspiredVersions:Servable的期望状态集合Core:连接所有组件的核心枢纽APIs:gR
- pycharm绘图时无法显示中文字图
记录两种自己成功使用的方法方法一:#导入中文字体fname是下载的字体的地址,建议就放pycharm里,省的报错zhfont1=matplotlib.font_manager.FontProperties(fname="C:\ProgramFiles\PyCharm2023.2.1\SourceHanSansSC-Bold.otf")#打印时添加一句:fontproperties=zhfont1即
- 将RESP.app的备份数据转码成AnotherRedisDesktopManager的格式
ziyue7575
redis软件
将RESP.app的备份数据转码成AnotherRedisDesktopManager的格式最近发现了AnotherRedisDesktopManager,这个软件可以直接展示proto数据。将RESP.app导出的json文件,转码为AnotherRedisDesktopManager的ano文件(是一个list转了base64)注意:AnotherRedisDesktopManager是没有分
- Linux系统的网络服务
杨了个杨8982
linux基础linux运维服务器
一、Centos系统1.NetworkManager从CentOS7开始,NetworkManager成为默认的网络管理服务,负责管理网络连接,支持有线、无线、VPN等多种连接方式,可通过图形界面或nmcli命令行工具进行配置。2.network传统的网络服务,在早期的CentOS版本中是主要的网络管理方式,通过配置/etc/sysconfig/network-scripts/目录下的配置文件来设
- 如何快速将iPhone中的文本保存到电脑上
您的iPhone上是否有很多重要的短信,并且您想将短信备份到计算机上?我们都知道传输消息与传输照片不同,但幸运的是,您可以使用相关的工具和方法来实现。我们介绍了4种方法来解释如何将iPhone中的文本保存到计算机。所有的办法都是可行的。那么,让我们尝试一下。第1部分:如何通过iReaShareiPhoneManager将文本从iPhone保存到计算机(最简单)短信是iPhone上的基本信息,我们只
- npm ci跟npm install有什么区别
阿里嘎多学长
npm前端node.js
npmci和npminstall都是npm(NodePackageManager)提供的命令,用于安装项目依赖,但它们在使用场景和行为上有一些关键的区别:使用场景:npminstall:通常用于开发环境,当你需要安装一个新的包或者修改package.json和package-lock.json文件时使用。npmci:主要用于生产环境或持续集成(CI)系统中,它要求存在一个package-lock.
- C#仿CANoe设计面板PANL的设计思路
99乘法口诀万物皆可变
C#c#单片机stm32
usingSystem;usingSystem.Windows.Forms;usingUTS_Link_CANoe_Bridge.VariableManagerEnhanced;namespaceUTS_Link_CANoe_Bridge{publicpartialclassVariableManagerEnhanced_UIDebug:Form{publicVariableManagerEnha
- 鸿蒙中位置权限和相机权限
大尾巴昂
harmonyos数码相机华为
1.module.json5中添加相关权限和string.json中配置信息2.详情代码import{hilog}from'@kit.PerformanceAnalysisKit';import{TAG}from'@ohos/hypium/src/main/Constant';import{bundleManager,common}from'@kit.AbilityKit';import{abil
- 移动应用通信协议逆向分析与防护实践
群联云防护小杜
安全问题汇总安全人工智能重构ddos服务器
一、抓包定位服务器IP的核心步骤1.环境配置#安装抓包工具adbinstallcharles-proxy-4.6.3.apk#开启透明代理iptables-tnat-AOUTPUT-ptcp--dport80-jREDIRECT--to-port88892.SSLPinning绕过(Java代码)//自定义TrustManager绕过证书校验publicstaticSSLSocketFactory
- mysql 5.1 升级 mysql 5.7 升级 mariadb10
武昌库里写JAVA
面试题汇总与解析课程设计springbootvue.jslayui毕业设计
下载安装https://dev.mysql.com/downloads/repo/yum/yum-yinstallmysql80-community-release-el6-3.noarch.rpm#centos6yum-yinstallyum-utils5.1->5.5yum-config-manager--disablemysql80-communityyum-config-manager--
- Kubernetes集群架构详情
弓长三虎
kubernetes架构java容器云原生
Kubernetes属于典型的Server-Client形式的二层架构,在程序级别,Master主要由APIServer(kube-apiserver)、ControllerManager(kube-controller-manager)和Scheduler(kubescheduler)这3个组件,以及一个用于集群状态存储的etcd存储服务组成,它们构成整个集群的控制平面;而每个Node节点则主要
- Windows注册HTTP服务实现Jenkins Allure报告、测试日志永久访问
要站在顶端
Jenkinswindowshttpjenkins
使用NSSM(Non-SuckingServiceManager)将Allure报告的HTTP服务注册为Windows后台服务的详细操作攻略,确保Jenkins测试结果可以长期通过URL访问。✅目标将alluregenerate生成的报告目录托管为静态网页服务,并作为后台服务运行,实现Jenkins测试结果的永久访问。所需工具Python(3.x)NSSM(用于创建Windows服务)Jenkin
- CDH部署Hive详细指南
暴躁哥
大数据技术hivehadoop数据仓库
CDH部署Hive详细指南本文将详细介绍如何使用ClouderaManagerWeb界面部署Hive组件,包括安装、配置、优化和运维管理等内容。1.环境准备1.1系统要求1.1.1硬件要求服务器配置CPU:建议8核以上内存:建议32GB以上磁盘:建议使用企业级SAS或SSD网络:建议万兆网络集群规模小型集群:3-5节点中型集群:6-20节点大型集群:20节点以上1.1.2软件要求操作系统CentO
- 通过CDH安装Spark的详细指南
暴躁哥
大数据技术spark大数据分布式
通过CDH安装Spark的详细指南简介ClouderaDistributionofHadoop(CDH)是一个企业级的大数据平台,它集成了多个开源组件,包括Hadoop、Spark、Hive等。本文将详细介绍如何通过CDH安装和配置Spark。前提条件在开始安装之前,请确保满足以下条件:已安装CDH集群具有管理员权限所有节点之间网络互通系统时间同步足够的磁盘空间(建议至少预留20GB)安装步骤1.
- seata的实现原理
2401_85327573
架构微服务
Seata是阿里巴巴开源的分布式事务解决方案,旨在为微服务架构提供高性能和易用的分布式事务支持。以下是Seata实现原理的详细说明,使用中文回答:1.总体架构Seata采用客户端-服务端架构,分为三个核心组件:-TransactionCoordinator(TC):事务协调者,服务端,负责全局事务的协调和管理,维护事务状态。-TransactionManager(TM):事务发起者,客户端,负责发
- Seata模式
代码中の快捷键
javaidespringcloud
Seata分布式事务模式终极指南:从原理到实践的全方位解析一、Seata深度剖析1.1Seata架构全景Seata采用三层架构设计,各组件协同工作:TC(TransactionCoordinator)全局事务大脑,负责事务生命周期管理核心功能:全局事务的发起与终止分支事务的注册与状态管理全局锁的分配与释放部署方式:独立服务,支持集群部署TM(TransactionManager)事务发起方,定义事
- RedHat 7配置bonding双网卡绑定
.Eyes
linux笔记
RedHat7配置bonding双网卡绑定redhat7虽然新增了teaming技术支持双网卡绑定,但bonding技术依然可以沿用,本文测试的是bond的绑定方式为了避免冲突,建议关闭NetworkManager:systemctlstopNetworkManager、systemctldisableNetworkManager本文原始出处:江健龙的技术博客http://jiangjianlon
- WorkManager深度解析:企业级后台任务调度方案
Android洋芋
WorkManagerJetpack任务调度Android后台任务
简介推荐的现代化后台任务调度框架,它以可靠性为核心,能够保证任务在设备重启后仍能执行,是数据备份、图片处理等企业级应用场景的理想选择。WorkManager一、WorkManager是什么WorkManager是AndroidJetpack组件库中的一部分,专为管理和调度后台任务而设计。它提供了一种简单而强大的方式来执行延迟任务、定期任务和一次性任务,并确保这些任务在设备重启后仍然能够正常运行。W
- RPGMZ 游戏引擎如何与lua进行互相调用 初探
RPGMZ
游戏引擎lua开发语言RPGMZjavascript
functionReadTxt(file_name){letdata=file_name;if(StorageManager.isLocalMode()){data=StorageManager.fsReadFile(file_name);}else{constxhr=newXMLHttpRequest();xhr.open('GET',file_name,false);xhr.onreadyst
- RPGMZ游戏引擎 如何实现 加载本地txt文件
RPGMZ
游戏引擎前端javascriptRPGMZ
functionReadTxt(file_name){letdata=file_name;if(StorageManager.isLocalMode()){data=StorageManager.fsReadFile(file_name);}else{constxhr=newXMLHttpRequest();xhr.open('GET',file_name,false);xhr.onreadyst
- JS常用设计模式汇总
逆袭的菜鸟X
我的前端javascript设计模式开发语言
1、基于类的单例模式//PageManager.jsclassPageManager{constructor(config){if(!PageManager.instance){this.config=config;this.initialized=false;PageManager.instance=this;this.init();}returnPageManager.instance;}in
- SpringBoot多数据源配置详解
墨鸦_Cormorant
#Java持久层springboot后端java
文章目录多数据源核心概念多数据源实现示例多数据源的配置文件以及配置类JPA多数据源配置MyBatis多数据源配置事务管理:跨数据源事务处理单数据源事务多数据源事务挑战事务管理器:DataSourceTransactionManager和JpaTransactionManager多数据源事务使用基于AbstractRoutingDataSource的动态数据源常见问题与解决方案典型问题排查表数据源切
- 【回顾原生JDBC手动管理事务以及两种方式实现Spring编程式事务】
无岸之舟
spring数据库java
文章目录一.关于事务1.事务概念2.事务四个基本特性3.事务的生命周期4.事务的隔离级别5.事务的应用场景二.回顾原生JDBC手动管理事务三.Spring编程式事务1.使用TransactionTemplate进行编程式事务管理2.使用PlatformTransactionManager进行编程式事务管理四.编程式事务的应用场景五.总结一.关于事务1.事务概念事务(Transaction)是数据库
- [IDisplayManager]DisplayManagerService接口说明
CV资深专家
15_Android系统服务安卓
以下是对IDisplayManager.aidl文件的完整解析,按照功能模块分类,IDisplayManagerAIDL接口详解该接口用于Android系统中对显示设备(如主屏、虚拟屏、Wi-Fi显示等)进行管理与控制。部分接口需要特定权限,普通应用无法直接调用。️显示器信息获取方法名参数返回值/作用getDisplayInfo(intdisplayId)displayId:显示设备ID获取指定显
- Java程序实现串口通信监听条码扫描器的代码(扫码枪)
博风
bakcodeJava相关java开发语言
引入依赖:com.fazecastjSerialComm2.10.4主程序:importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importcom.fa
- Linux搭建Samba服务器
一、实验目的及要求实验目的◼学习Linux系统共享文件的方法◼理解SMB协议◼掌握Samba服务器的配置方法实验要求john(总经理)mike、cali(市场部)cela、kado(工厂部)管理员:adminstrator共享名共享目录用户manager/share/managerjohn(rw),adminstrator(rw)market/share/maket@market(rw),john
- 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