- 使用 RabbitMQ 实现秒杀订单系统的异步消息处理
c137范特西
rabbitmq分布式
使用RabbitMQ实现秒杀订单系统的异步消息处理在秒杀系统中,如何确保高并发环境下的订单处理稳定高效是个很大的挑战。为了解决这个问题,我们通常会引入消息队列,通过异步处理来削峰填谷。这篇文章将详细讲解如何使用RabbitMQ来设计一个秒杀订单系统的异步消息处理流程,重点是如何使用交换机(Exchange)、队列(Queue)、路由键(RoutingKey)以及死信队列(DeadLetterQue
- About E-cigarettes
俗世尘沙
Howbadaree-cigarettesforyou?电子烟对人有多糟?TheregulatorsatAmerica'sFoodandDrugAdministrationcouldbeforgivenforwantingacigarettebreak.TheyrushedtomeetaSeptember9thdeadlinetodecidewhethermorethan6.5me-cigaret
- 使用kubeadm部署k8s集群
theo.wu
kubernetes容器云原生
1、简介K8s部署主要有两种方式:1、KubeadmKubeadm是一个K8s部署工具,提供kubeadminit和kubeadmjoin,用于快速部署Kubernetes集群。2、二进制从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。本文通过kudeadm的方式在centos7上安装kubernetes集群。2、环境准备(1)初始化配置#关闭防火墙system
- 【io_uring】简介和使用
ywang_wnlo
存储liburingio_uring
文章目录简介使用系统调用liburing样例代码流程编译参考资料简介io_uring是Linux在5.1版本引入的一套新的异步IO实现。相比Linux在2.6版本引入的AIO,io_uring性能强很多,接近SPDK[1],同时支持bufferIOio_uring的作者JensAxboe是Linux内核块层和其他块设备的维护者,同时也是CFQ、Noop、Deadline调度器、blktrace以及
- 什么是死锁,如何避免死锁
GG编程
java开发语言
1.基本概念:死锁(Deadlock)是指在并发系统中,两个或多个进程因相互等待而陷入永久阻塞状态的情况。死锁通常发生在计算机系统中的多线程或多进程环境下,当每个进程都在等待其他进程释放某些资源时,系统就会出现死锁。2.死锁的四个必要条件:死锁的发生需要满足以下四个条件,称为死锁的四个必要条件:互斥条件(MutualExclusion):每个资源要么已经分配给一个进程使用,要么是可用的。占有且等待
- 官宣:大本亲口表示他已从“蝙蝠侠”退役
DC中文网
早前外媒“Deadline”就有消息称本·阿弗莱克将不再饰演“蝙蝠侠”,他将会将“蝙蝠侠”的衣钵传给下一位更年轻的演员。虽然这则消息一出还有不少网友觉得他只是不会出演马特·里夫斯的《蝙蝠侠》,但从大本自己的表态来看,事情并非如此。不久前,大本作为嘉宾参加了最新一期的“鸡毛秀”,主持人自然也问到了为什么他放弃了执导《蝙蝠侠》?大本表示主要是自己没能弄出一个满意的版本,因此选择让其他人来试试,而华纳也
- 线程的死锁和并发安全
榴月~
Javajava
在多线程编程中,线程的死锁和并发安全是两个重要的概念。理解这两个概念并正确地管理它们,对于编写高效且可靠的并发程序至关重要。线程的死锁死锁(Deadlock)是指两个或多个线程相互等待对方释放已经持有的资源,导致它们无法继续执行的现象。死锁会导致程序卡住,无法继续执行。死锁的四个必要条件互斥条件:一个资源一次只能被一个线程占用。持有并等待条件:一个线程已经持有至少一个资源,但又申请新的资源,而该资
- 浅尝要事第一
毅行生长
要事第一,顾名思义重要的事情放第一。可真正做到的人有多少呢?或者说哪些是重要的事情?哪些是自己重要的事情而不是对别人重要的事情?读书时,老被爸爸责怪做事不分轻重,我也是懵懵懂懂的知道自己有这样的缺点,但如何改正,没有章法。工作以后,很多事情被人追着跑,有太多deadline跟在屁股后面追,疲于应对的我对自己的缺点厌恶不堪,却没太多时间纠正。当妈以后,琐事是工作上的几万倍,哪哪都需要救火,什么都看起
- ubuntu安装多个版本python
不锈钢脸盆
ubuntupythonlinux
背景:本地环境Ubuntu22.0464-bit,默认安装python3.10.6,未安装pip,venv需求:安装python3.8,并安装两版本对应pip,venv1、增加PPA软件源deadsnakes:sudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:deadsnakes/ppa2、跟新系统的软件包列表sud
- 但是,还有书籍
胡壮壮Y
题记:今年的春运仿佛生化危机中的场景再现。贴在墙角看着人头攒动,我的脑海中釜山行、TheWalkingDead、人类清除计划等等电影的经典画面反复出现(阿伟反复去世awsl)。为了缓解我滴焦虑,我就掏出了珍藏多年的小电影,oh,不,是纪录片。一部特别的,讲述现代生活与书籍的纪录片——《但是,还有书籍》。纪录片封面纪录片共有五集,分别讲述了:01书海扁舟记02二手书的奇幻漂流03绘本中的奇妙世界04
- RabbitMQ高级特性
StaticKing
RabbitMQrabbitmq分布式
目录前言数据持久化原理1.数据持久化概述2.消息持久化3.队列持久化4.磁盘与内存持久化RabbitMQ高级特性1.惰性队列(LazyQueues)2.优先级队列(PriorityQueues)3.死信队列(DeadLetterExchanges,DLX)4.消息的延迟与TTL(Time-To-Live)5.发布确认模式(PublisherConfirms)6.流控(FlowControl)示例代
- jstack输出文件linux,Jvm dump jstack jmap jstat 介绍与使用
欢12
jstack输出文件linux
总结:(1)栈信息:jstack输出的信息。(2)堆信息:jmap-dump输出的文件,(3)jstat查看gc情况,jstat-gc间隔毫秒数比如jstat-gc123455000也就是每隔5秒打印进程12345的gc情况一、看一下jstackjstack-m>jvm_deadlocks.txtjstack-l>jvm_listlocks.txt参考资料jstack-StackTrace使用to
- Golang学习笔记——context包
沉默巴比伦
Golang
说明Context上下文用于控制函数调用链,所有进入服务的请求需要创建Context,调用其他服务需要接受一个Context,Context需要在函数调用链中进行传播。使用WithCancel,WithDeadline,WithTimeout,WithVaule,可以从一个Context上派生出子Context,并得到CancelFunc。调用CancelFunc可以关闭子Context及其派生出
- EOJ Monthly 2020.7
Happig丶
#OtherContests
A-打字机(思维)显然如果使用第二种构造,aaa和bbb是成对出现的,如果aaa的数目较多就必须再使用第一种构造,因此:aaa的数目和bbb的数目相同且aaa均在bbb的前面;或者只有aaa,就是happyhappyhappybbb的数目大于aaa的数目是deaddeaddead否则为sadsadsad#include#include#include#include#include#include
- 经验-总结1
DongGei
数据库java
IDEAdebug启动慢断点先全部关了group_concat的长度限制现象:roleNames直接会截取到默认的group_concat的长度限制设置(1024字节)selectgroup_concat(role.rolename)asroleNames,group_concat(role.roleId)asroleIdsfromPUB_USER_ROLE_LINKp,PUB_ROLE_INFO
- 年终盘点:解读2016之容器篇——“已死”和“永生”
weixin_34360651
uiruntime人工智能
也说不上什么时候起,“XXXIsDead.LongLiveXXX”的句式突然成为了技术会议上演讲题目的一个标准套路。然而不管已经被引用的多么烂俗,用这套悖论来总结2016年容器技术圈子发生的凡事种种,却实在有种说不出来的恰到好处。无需多言,稍微回顾一下2016年容器技术圈子的时间线,我们很容易就能回想起容器技术如何在这一年迅速登上云计算舞台的中心。这股热潮,从年初Docker公司闪电收购Unike
- Ubuntu20.04升级python3.8 ubuntu升级python3.10
打工人你好
ubuntupythonlinux
Ubuntu20.04升级python3.8ubuntu升级python3.10一、添加源二、安装python3.10三、设置默认版本为Python3.10四、选择默认版本python3.10五、修复pip六、权限问题一、添加源sudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:deadsnakes/ppaaptupd
- 2018.7复盘
山头小龟仙
月底最后一天都是复盘日。任何不以行为改变为目的的复盘都是假复盘。Studying·日更31篇,2个忠粉·泛读《时间看得见》·听书10本·电视剧《延禧攻略》85分·电影《我不是药神》80分·综艺《向往的生活》《幸福三重奏》·【改变自己】会员作业3期反馈·文摘*11·画画*1Living·复诊,片切,裂掉一个咬胶,目前12·奶茶*7·运动*10·月事安稳,肤质稳定·祛湿膏祛湿茶·好物:原美希面膜,完美
- 泽平 的ScalersTalk第六轮新概念朗读持续力训练Day 82 20210613
郑泽平
练习材料:Lesson81EscapeWhenhehadkilledtheguard,theprisonerofwarquicklydraggedhimintothebushes.Workingrapidlyinthedarkness,hesoonchangedintothedeadman'sclothes.Now,dressedinablueuniformandwitharifleoverhis
- RabbitMq高级特性-2
letg
springamqprabbitmq分布式
一、死信队列死信队列,英文缩写:DLX。DeadLetterExchange(死信交换机),当消息成为Deadmessage后,可以被重新发送到另一个交换机,这个交换机就是DLX。1.1消息在什么情况下会成为死信?1.队列消息长度到达限制;⒉消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;3.原队列存在消息过期设置,消息到
- -[AwesomeProjectTests testRendersWelcomeScreen]
架构师的一小步
"_RCTSetLogFunction",referencedfrom:-[AwesomeProjectTeststestRendersWelcomeScreen]inAwesomeProjectTests.o运行报错---->解决方法:在BuildSetting->Linking->DeadCodeStripping中设置为No就可以了。
- 吸血鬼日记第1季第16集台词
英美剧台词
英文中文Foroveracentury,Ihavelivedinsecret.一个多世纪以来我都秘密地活着Untilnow.直到现在Iknowtherisk,butIhavetoknowher.我知道很冒险但我必须要认识她Elena.She'sadeadringerforKatherine.埃琳娜和凯瑟琳长得一模一样Whathappenedtoyourface?你的脸怎么了It'snothing.
- java多线程编程-上下文切换
李2牛
上下文切换(ContextSwitch)是多线程共享同一个处理器的产物。线程活性故障死锁(Deadlock):鹬蚌相争的场景锁死:绝情花毒世界上只有一枚解药可以解除,然后这枚解药没了。中毒的人永远无法解毒。活锁:小猫试图咬自己的尾巴但是它总是追着自己的尾巴咬,始终无法咬到。活锁的外在表现是可能处于RUNNABLE状态,但是线程的任务并没有实际的进展,一直在做无用功。饥饿:某些线程始终无法获取资源,
- golang学习笔记——Context 并发编程简明教程
怪我冷i
golang从入门到入门golang学习笔记
文章目录1为什么需要Context2context.WithCancel2.1控制单个协程2.2控制多个协程3context.WithValue4context.WithTimeout5context.WithDeadline1为什么需要ContextWaitGroup和信道(channel)是常见的2种并发控制的方式。如果并发启动了多个子协程,需要等待所有的子协程完成任务,WaitGroup非常
- 2021-04-26晚间复盘
言时姑娘
周一,新的一周开始了起床:6点半就寝:十二点天气:雨转晴心情:心情就像天气,偶尔振奋,经常丧气叫我起床的不是闹钟是梦想好习惯打卡1.视觉笔记跟着视频练习,完成3章2.训练营写大纲,给老师沟通3.书评文章完成了一半,准备明天早起完成另一半。4.英语练习完成5.读书《无限可能》《高分读书法》,不知道从什么时候,开始了同时读好几本书,不知道是好还是坏。算是大脑的一种休息吧。目前在deadline的事基本
- Golang之Context
8023之永恒
Golanggolang后端
目录1、Context接口:1.1、四个方法:1.1.1、Deadline方法:1.1.2、Done方法:1.1.3、Err方法:1.1.4、Value方法:2、Context接口实现:2.1、Background方法:2.2、TODO方法:3、context类型:3.1、valueCtx:3.1.1、3.1.2、3.1.3、3.2、cancelCtx:3.2.1、3.2.2、3.3、timerC
- Linux调优指南
SakamataZ
linux驱动开发运维
更多相关知识可以阅读:https://www.yuque.com/treblez/qksu6c/yxl59pkvczqot9ushttps://www.yuque.com/treblez/qksu6c/nqe8ip59cwegl6rk本文不会讲解基础知识。CPU设置调度器这几个调度类的优先级如下:Deadline>Realtime>Fair如果你的某些任务对延迟容忍度很低,比如说在嵌入式系统中就有
- 吸血鬼日记第1季第9集台词
英美剧台词
英文中文Foroveracentury,Ihavelivedinsecret一个多世纪以来我都秘密地活着untilnow.直到现在Iknowtherisk,butIhavetoknowher.我知道很冒险但我必须要认识她Elena,she'sadeadringerforKatherine.埃琳娜和凯瑟琳长的一模一样-Hello,brother.-Damon.-你好弟弟-达蒙HekilledZach
- 2022-01-06
帆影点点_df5c
训练08:掌握制定目标的SMART原则。SMART法则。·S(specific):明确性,不能笼统和抽象。·M(measurable):衡量性,即需要数量化。·A(attainable):可实现性,指付出努力可实现,目标不可过高或过低,要适度。·R(realistic):相关性,与主要目标有关联。·T(timebound):时限性,即完成目标的时间期限。训练09:为目标附加截止期限。在设立dead
- 还债人生-0208
许木木NANS
今晚学姐如约来给我上课,第一句话便问我书看到哪里了。我不好意思的说,只看了100多页,然后不出意料的被学姐diss了一顿..距离学姐给我定的deadline还有40天....专业课的书真的不是盖的...读一遍真的是做不到完全弄懂啊,在返回去读,速度就慢下来了...睡了,明天起来接着还债...
- jquery实现的jsonp掉java后台
知了ing
javajsonpjquery
什么是JSONP?
先说说JSONP是怎么产生的:
其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,小可不才,试着用自己的方式来阐释一下这个问题,看看是否有帮助。
1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;
2、
- Struts2学习笔记
caoyong
struts2
SSH : Spring + Struts2 + Hibernate
三层架构(表示层,业务逻辑层,数据访问层) MVC模式 (Model View Controller)
分层原则:单向依赖,接口耦合
1、Struts2 = Struts + Webwork
2、搭建struts2开发环境
a>、到www.apac
- SpringMVC学习之后台往前台传值方法
满城风雨近重阳
springMVC
springMVC控制器往前台传值的方法有以下几种:
1.ModelAndView
通过往ModelAndView中存放viewName:目标地址和attribute参数来实现传参:
ModelAndView mv=new ModelAndView();
mv.setViewName="success
- WebService存在的必要性?
一炮送你回车库
webservice
做Java的经常在选择Webservice框架上徘徊很久,Axis Xfire Axis2 CXF ,他们只有一个功能,发布HTTP服务然后用XML做数据传输。
是的,他们就做了两个功能,发布一个http服务让客户端或者浏览器连接,接收xml参数并发送xml结果。
当在不同的平台间传输数据时,就需要一个都能解析的数据格式。
但是为什么要使用xml呢?不能使json或者其他通用数据
- js年份下拉框
3213213333332132
java web ee
<div id="divValue">test...</div>测试
//年份
<select id="year"></select>
<script type="text/javascript">
window.onload =
- 简单链式调用的实现技术
归来朝歌
方法调用链式反应编程思想
在编程中,我们可以经常遇到这样一种场景:一个实例不断调用它自身的方法,像一条链条一样进行调用
这样的调用你可能在Ajax中,在页面中添加标签:
$("<p>").append($("<span>").text(list[i].name)).appendTo("#result");
也可能在HQ
- JAVA调用.net 发布的webservice 接口
darkranger
webservice
/**
* @Title: callInvoke
* @Description: TODO(调用接口公共方法)
* @param @param url 地址
* @param @param method 方法
* @param @param pama 参数
* @param @return
* @param @throws BusinessException
- Javascript模糊查找 | 第一章 循环不能不重视。
aijuans
Way
最近受我的朋友委托用js+HTML做一个像手册一样的程序,里面要有可展开的大纲,模糊查找等功能。我这个人说实在的懒,本来是不愿意的,但想起了父亲以前教我要给朋友搞好关系,再加上这也可以巩固自己的js技术,于是就开始开发这个程序,没想到却出了点小问题,我做的查找只能绝对查找。具体的js代码如下:
function search(){
var arr=new Array("my
- 狼和羊,该怎么抉择
atongyeye
工作
狼和羊,该怎么抉择
在做一个链家的小项目,只有我和另外一个同事两个人负责,各负责一部分接口,我的接口写完,并全部测联调试通过。所以工作就剩下一下细枝末节的,工作就轻松很多。每天会帮另一个同事测试一些功能点,协助他完成一些业务型不强的工作。
今天早上到公司没多久,领导就在QQ上给我发信息,让我多协助同事测试,让我积极主动些,有点责任心等等,我听了这话,心里面立马凉半截,首先一个领导轻易说
- 读取android系统的联系人拨号
百合不是茶
androidsqlite数据库内容提供者系统服务的使用
联系人的姓名和号码是保存在不同的表中,不要一下子把号码查询来,我开始就是把姓名和电话同时查询出来的,导致系统非常的慢
关键代码:
1, 使用javabean操作存储读取到的数据
package com.example.bean;
/**
*
* @author Admini
- ORACLE自定义异常
bijian1013
数据库自定义异常
实例:
CREATE OR REPLACE PROCEDURE test_Exception
(
ParameterA IN varchar2,
ParameterB IN varchar2,
ErrorCode OUT varchar2 --返回值,错误编码
)
AS
/*以下是一些变量的定义*/
V1 NUMBER;
V2 nvarc
- 查看端号使用情况
征客丶
windows
一、查看端口
在windows命令行窗口下执行:
>netstat -aon|findstr "8080"
显示结果:
TCP 127.0.0.1:80 0.0.0.0:0 &
- 【Spark二十】运行Spark Streaming的NetworkWordCount实例
bit1129
wordcount
Spark Streaming简介
NetworkWordCount代码
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
- Struts2 与 SpringMVC的比较
BlueSkator
struts2spring mvc
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。 2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring
- Hibernate在更新时,是可以不用session的update方法的(转帖)
BreakingBad
Hibernateupdate
地址:http://blog.csdn.net/plpblue/article/details/9304459
public void synDevNameWithItil()
{Session session = null;Transaction tr = null;try{session = HibernateUtil.getSession();tr = session.beginTran
- 读《研磨设计模式》-代码笔记-观察者模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
/**
* “观
- 重置MySQL密码
chenhbc
mysql重置密码忘记密码
如果你也像我这么健忘,把MySQL的密码搞忘记了,经过下面几个步骤就可以重置了(以Windows为例,Linux/Unix类似):
1、关闭MySQL服务
2、打开CMD,进入MySQL安装目录的bin目录下,以跳过权限检查的方式启动MySQL
mysqld --skip-grant-tables
3、新开一个CMD窗口,进入MySQL
mysql -uroot
 
- 再谈系统论,控制论和信息论
comsci
设计模式生物能源企业应用领域模型
再谈系统论,控制论和信息论
偶然看
- oracle moving window size与 AWR retention period关系
daizj
oracle
转自: http://tomszrp.itpub.net/post/11835/494147
晚上在做11gR1的一个awrrpt报告时,顺便想调整一下AWR snapshot的保留时间,结果遇到了ORA-13541这样的错误.下面是这个问题的发生和解决过程.
SQL> select * from v$version;
BANNER
-------------------
- Python版B树
dieslrae
python
话说以前的树都用java写的,最近发现python有点生疏了,于是用python写了个B树实现,B树在索引领域用得还是蛮多了,如果没记错mysql的默认索引好像就是B树...
首先是数据实体对象,很简单,只存放key,value
class Entity(object):
'''数据实体'''
def __init__(self,key,value)
- C语言冒泡排序
dcj3sjt126com
算法
代码示例:
# include <stdio.h>
//冒泡排序
void sort(int * a, int len)
{
int i, j, t;
for (i=0; i<len-1; i++)
{
for (j=0; j<len-1-i; j++)
{
if (a[j] > a[j+1]) // >表示升序
- 自定义导航栏样式
dcj3sjt126com
自定义
-(void)setupAppAppearance
{
[[UILabel appearance] setFont:[UIFont fontWithName:@"FZLTHK—GBK1-0" size:20]];
[UIButton appearance].titleLabel.font =[UIFont fontWithName:@"FZLTH
- 11.性能优化-优化-JVM参数总结
frank1234
jvm参数性能优化
1.堆
-Xms --初始堆大小
-Xmx --最大堆大小
-Xmn --新生代大小
-Xss --线程栈大小
-XX:PermSize --永久代初始大小
-XX:MaxPermSize --永久代最大值
-XX:SurvivorRatio --新生代和suvivor比例,默认为8
-XX:TargetSurvivorRatio --survivor可使用
- nginx日志分割 for linux
HarborChung
nginxlinux脚本
nginx日志分割 for linux 默认情况下,nginx是不分割访问日志的,久而久之,网站的日志文件将会越来越大,占用空间不说,如果有问题要查看网站的日志的话,庞大的文件也将很难打开,于是便有了下面的脚本 使用方法,先将以下脚本保存为 cutlog.sh,放在/root 目录下,然后给予此脚本执行的权限
复制代码代码如下:
chmo
- Spring4新特性——泛型限定式依赖注入
jinnianshilongnian
springspring4泛型式依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- centOS安装GCC和G++
liuxihope
centosgcc
Centos支持yum安装,安装软件一般格式为yum install .......,注意安装时要先成为root用户。
按照这个思路,我想安装过程如下:
安装gcc:yum install gcc
安装g++: yum install g++
实际操作过程发现,只能有gcc安装成功,而g++安装失败,提示g++ command not found。上网查了一下,正确安装应该
- 第13章 Ajax进阶(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- How to determine BusinessObjects service pack and fix pack
blueoxygen
BO
http://bukhantsov.org/2011/08/how-to-determine-businessobjects-service-pack-and-fix-pack/
The table below is helpful. Reference
BOE XI 3.x
12.0.0.
y BOE XI 3.0 12.0.
x.
y BO
- Oracle里的自增字段设置
tomcat_oracle
oracle
大家都知道吧,这很坑,尤其是用惯了mysql里的自增字段设置,结果oracle里面没有的。oh,no 我用的是12c版本的,它有一个新特性,可以这样设置自增序列,在创建表是,把id设置为自增序列
create table t
(
id number generated by default as identity (start with 1 increment b
- Spring Security(01)——初体验
yang_winnie
springSecurity
Spring Security(01)——初体验
博客分类: spring Security
Spring Security入门安全认证
首先我们为Spring Security专门建立一个Spring的配置文件,该文件就专门用来作为Spring Security的配置