- 通俗易懂:MySQL中如何设置只读实例并确保数据一致性?
大龄下岗程序员
mysqljavamysqlspring
在MySQL中设置只读实例主要应用于构建高可用性和扩展性的数据库环境,通常是为了分担读取负载或者用于备份和灾难恢复。以下是创建MySQL只读实例并确保数据一致性的基本步骤:1.创建并配置只读实例-主从复制设置-首先,你需要有一个主数据库实例(Master)负责接收所有的写操作。-创建一个或多个从数据库实例(Slave),并将它们配置为主数据库的复制品。这通常通过设置主从复制(Replication
- helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus
zxj19880502
grafanaprometheus
背景角色IPK8S版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8安装kube-prometheusmkdir-p/data/yaml/kub
- Jenkins安装
lettger
1.第一步sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat/jenkins.reposudorpm--importhttps://pkg.jenkins.io/redhat/jenkins.io.key2.第二步sudoyuminstalljenkins3.第三步servicejenkinsstatus|sta
- git删除之前所有的commit信息
fightingwy
gitgithub
拉取代码gitclone-bmasterurlgitcheckout--orphanorphan创建一个无父节点的branchgitmerge合并主分支的目前在孤儿分支上接着gitadd.gitcommit-m“xxx”gitswitchmastergitreset--hardorphan将masterreset到跟new一样的位置gitpush--force-with-leaseoriginma
- SAP Spartacus的Component映射
JerryWang_汪子熙
Spartacus默认的购物车界面:https://github.com/SAP/spartacus-bootcamp/blob/master/sparta0/src/app/components/cart.component.ts新建一个CartComponent,对Spartacus标准的CartDetailsComponent进行扩展:import{Component}from'@angul
- Mysql数据库MariaDB数据库MHA高可用程序
yichen_china
声明:本次实验使用的是MariaDB数据库,所以本文中所出现的MariaDB与MySQL都是指的是MariaDB!!!MHA(MasterHA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automatingmasterfailover功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过于其它从节
- Docker 安装mysql 主从复制
dylan_2017
Docker高级dockermysql容器
目录1MySql主从复制简介1.1主从复制的概念1.2主从复制的作用2.搭建主从复制2.1pullmysql镜像2.2新建主服务器容器实例33072.2.1master创建my.cnf2.2.2重启master2.2.3进入mysql容器,创建同步用户2.3新建从服务器容器实例33082.3.1slave创建my.cnf2.3.2重启slave实例2.3.3在master中查看主从同步状态2.3.
- SinoDB系统数据库
Sinoregal
数据库SinoDB星瑞格国产数据库
在SinoDB数据库的一个实例中,存在多个数据库,分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建,存放实例级别上的监控信息、数据字典信息,用户能够访问而不能修改这些数据。用户数据库由用户根据需要创建,存放用户数据以及和该数据库有关的数据字典信息。SinoDB数据库服务器主要有以下系统数据库:sysmaster 数据库服务器在初始化磁盘空间时创建sysmaster数据库,数据库服务器
- Flink源码-6-JobMaster 启动任务
wending-Y
Flink入门到实践flink
JobMasterjobmaster负责执行整个任务入口类org.apache.flink.runtime.jobmaster.JobMasterpublicCompletableFuturestart(finalJobMasterIdnewJobMasterId)throwsException{//makesurewereceiveRPCandasynccallsstart();returnca
- 如何实现数据库的主从复制?
Xs_layla
javapython数据库
如何实现数据库的主从复制?数据库的主从复制是实现数据备份、负载均衡和故障恢复的重要策略。它涉及一个主数据库(Master)和一个或多个从数据库(Slave),主数据库负责处理写入操作,而从数据库则复制主数据库的数据,用于处理读取操作或作为备份。下面是一个基本的步骤指南,用于实现数据库的主从复制,但请注意,具体的实现细节可能因不同的数据库系统(如MySQL、PostgreSQL等)而有所差异。1.配
- Docker搭建mysql8的主从复制
优秀的颜
云原生docker
Docker通过Docker部署Mysql主从复制,Docker安装在前篇有,直接演示:拉取镜像#获取有哪些镜像dockersearchmysql#拉取MySQL镜像dockerpullmysql:8.0.32#查看镜像dockerimages主节点的配置创建数据存储目录mkdir-p/docker/mysql/master/data创建日志目录mkdir-p/docker/mysql/maste
- jenkins指定jdk版本打包和运行项目
Grey_fantasy
jenkinsjava
背景:因为jdk8安装jenkins有很多插件有问题,导致很多自动化编译都有问题,所以我jenkins使用jdk11进行安装。全局变量配置了jdk11,直接一键式命令安装jdk8会导致jenkins异常。1、第一步,去下载jdk8版本解压。下载地址:https://repo.huaweicloud.com:8443/artifactory/java-local/jdk/8u181-b13/百度云链
- 自动化构建平台(七)使用Jenkins+Gitblit/Gitlab构建Java项目并生成镜像推送到Harbor/Nexus
流年五十前
自动化构建(CI/CD)自动化jenkinsgitlabspringbootmaven运维ci/cd
文章目录前言一、准备项目二、在Jenkins中创建项目三、Jenkins项目配置:General四、Jenkins项目配置:源码管理五、Jenkins项目配置:Build六、Jenkins项目配置:PostSteps1、创建项目启动脚本2、创建Dockerfile文件3、构建镜像4、推送镜像到私有库七、Jenkins开始构建八、检查镜像是否推送成功总结
- Redis 哨兵集群如何实现高可用?(2)
fighting哥
缓存java数据库redis缓存
目录7.slave配置的自动纠正8.slave->master选举算法9.quorum和majority10.configurationepoch11.configuration传播7.slave配置的自动纠正哨兵会负责自动纠正slave的一些配置,比如slave如果要成为潜在的master候选人,哨兵会确保slave复制现有master的数据;如果slave连接到了一个错误的master上,比如
- git软件的使用
北京大数据苏焕之
1.gitinit初始化2.gitadd*添加项目到池本地3.gitcommit-m"提交信息"添加项目到缓存空间4.gitpushhttps://github.com/zhouSUway/MyNetKing.gitmaster提交项目文件到github上5.gitstatus查看本地的项目是否到了池本地6.gitlog查看添加的项目是否到来缓存里通过颜色来区分差别7.gitbranchsuway
- 【GO】七、架构基础与 GORM 简要介绍
清河__
Gogolang架构开发语言
架构分析单体应用的部署架构:这种单体应用架构在少部分人开发时,不会产生太多问题,但在项目结构足够大时,就会产生多种需求同时开发的情况,多种需求的同时开发一定会产生先后与master合并的情况,后合并的需求就需要先拉取最新代码再进行回归测试,(无论是否产生代码冲突都必须进行回归测试)在这种情况下就极大的降低了开发效率另外,我们在进行各个需求开发时,操作同一个数据库,有很大的可能性出现操作同一张表导致
- wrk安装及使用
Loren_云淡风轻
自动化测试junit
一,mac安装官网地址:https://github.com/wg/wrk/blob/master/README.mdmac安装:brewinstallwrk查看是否安装成功:wrk-vcentos安装:sudoyumgroupinstall'DevelopmentTools'sudoyuminstall-yopenssl-develgitgitcloneGitHub-wg/wrk:ModernH
- Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(三)
L小林同学
软件测试jmetergitsvn测试工具jenkinsci/cdios
一、Jmeter中的BeanShell组件和语言规则BeanShell是一种完全符合java语法规则的脚本语言,同时他还有自己的语法规则。java包括:javase,jjavaee,javameJmeter有哪些BeanShell:1.前置处理器:Beanshell预处理程序。2.定时器:BeanShell3.采样器:BeanShell4.后置处理器:BeanShell5.断言:BeanShell
- 【Docker】docker | 命令 | 安装docker-compose | 卷 | 镜像存放位置 | volume | 清理空间
hgSuper
LinuxLinuxDocker
-8、拷贝镜像中的文件(镜像->宿主机)1)命令dockercp:2)示例dockercpmysql:/opt/tmp/c.sql/opt/tmp/c.sql~~-7、离线备份、打包下载、load(->tar)1)下载镜像到本地dockersave-ojenkins.tarjenkinsci/blueocean:latest说明1:04540a0bb985为IMAGEID说明2:tar包会在所在目
- mysql如何保持高可用
橙哥分享
java面试mysql
要保持MySQL数据库系统的高可用性,可以采取以下几种方法:主从复制(Master-SlaveReplication):配置主从复制是MySQL高可用性的基本方式。当主服务器出现故障时,从服务器可以立即接管,保证服务的可用性。同时还可以通过读写分离,提升数据库的读取性能。主主复制(Master-MasterReplication):主主复制不仅可以提高可用性,还可以提供负载均衡功能,实现跨数据中心
- DataX-数据迁移Oracle到Mysql-ETL工具
天海行者
【数据库】etl数据仓库
一、安装https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md1、直接下载DataX工具包:DataX下载地址下载后解压至本地某个目录,进入bin目录,即可运行同步作业:$cd{YOUR_DATAX_HOME}/bin$pythondatax.py{YOUR_JOB.json}自检脚
- Elasticsearch详解es
思静语
elasticsearchelasticsearch大数据搜索引擎
文章目录概述es架构为什么要使用ElasticSearchElasticSearch的优势使用场景es为什么这么快倒排索引如何保证ES和数据库的数据一致性监听binlog同步双写elasticsearch是如何实现master选举的Elasticsearch与Solr的区别概述ES全称是ElasticSearch,它是一个建立在全文搜索引擎库Lucene基础上的开源搜索和分析引擎。ES它本身具有分
- 分享一些开源的游戏仓库
电子云与长程纠缠
杂项游戏
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.
- 运维随录实战(14)之docker搭建mysql主从集群(Replication))
Loren_云淡风轻
运维运维dockermysql
1,从官方景镜像中拉取mysql镜像:dockerpullmysql:8.0.24--platformlinux/x86_642,创建master和slave容器:在创建之前先设置网段dockernetworkcreate--subnet=172.20.0.0/24soil_networkmaster:dockerrun-d-p3306:3306--namemysql-master--netsoi
- Mastering Convolutional Neural Networks: A Comprehensive Practical Exploration
Bio大恐龙
人工智能深度学习数据可视化机器学习
ConvolutionalNeuralNetworks(CNNs)haverevolutionizedthefieldofcomputervisionandimagerecognition,enablinggroundbreakingadvancementsinvariousdomains.Thesepowerfuldeeplearningmodelshaveproventheirprowessi
- Git 开源的版本控制系统-05-tags 标签管理
老马啸西风
java
标签创建标签gittag[提交ID]显示标签gittag显示标签详细信息gitshowhoubinbindeMacBook-Pro:git-demohoubinbin$gitbranchgit_demo_1.1git_demo_1.2git_demo_bug_001*masterhoubinbindeMacBook-Pro:git-demohoubinbin$gittagv1.0houbinbin
- 什么是VRRP?
划过手的泪滴t
网络智能路由器网络服务器运维
目录什么是VRRP?一、VRRP的定义VRRP的三种状态VRRP决定哪个路由器是Master。二、VRRP的作用三、VRRP名词解释1、VirtualRouter2、VRRPRouter四、华为VRRP实验配置基础检查基于IPv4的VRRP基本功能配置结果随着网络的快速普及和相关应用的日益深入,各种增值业务(如IPTV、视频会议等)已经开始广泛部署,基础网络的可靠性日益成为用户关注的焦点,能够保证
- k8s集群的CA证书过期处理
百战天王
kubernetes云原生
文章目录制作延期的CA证书获取CA全名准备签发申请配置生成新CA验证并替换CA更新master组件的CA配置kube-apiserverkube-controller-managerkube-schedulerkube-admin检查证书过期时间更新ServiceAccountsecret更新node组件配置的CA更新kubelet连接配置签发kubelet自动申请的客户端证书不改变原CA的公私钥
- sqli-labs less17 password-update语句
Yix1a
转自一位不知名大佬的笔记-----------------------------------less-17-----------------------------------原urlhttp://192.168.137.138/sqli-labs-master/Less-17/页面显示:[PASSWORDRESET](密码重置)说明这个页面很有可能是使用了update语句很多网页有修改密码的功
- Elasticsearch Completion Suggester 实战
tangwanggong
学习实践Elasticsearchcompletionsuggester
CompletionSuggester是ElasticsearchSearchAPIs中一种,主要用于输入框的自动补齐功能。我将通过字或者拼音首字母推荐成语的java程序作为实战演示。项目地址:https://github.com/tangwanggong/week-project/tree/master/week-1成语数据来源:https://github.com/pwxcoo/chinese
- 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