- 【eNSP实战】使用ACL实现路由器安全
敲键盘的Q
网络
拓图要求:允许10.0.0.0网段telent登录AR1,不允许其他主机telnet登录路由器设置接口如图所示AR1接口配置interfaceGigabitEthernet0/0/0ipaddress30.0.0.1255.255.255.0#iproute-static0.0.0.00.0.0.030.0.0.2AR2接口配置interfaceGigabitEthernet0/0/0ipaddr
- 零基础小白如何系统学习Spring Boot
Victoria Zhu
学习springboot后端
零基础小白如何系统学习SpringBoot一、学习前的准备1.必备基础知识✅Java基础:掌握Java8+的核心语法(类/对象/集合/异常处理)✅Maven/Gradle:理解依赖管理工具的基本使用(pom.xml配置)✅HTTP协议:了解RESTfulAPI设计理念(GET/POST/PUT/DELETE)环境要求公式环境要求公式环境要求公式推荐配置:JDK≥11,IDE=IntelliJIDE
- Harmonyos开发——TypeScript基础
凌煦
Harmonyostypescriptjavascript
TypeScript基础一、变量类型(1)number型:可以表示int、float、double同时也可表示8、16进制等letnum1:number=0letnum2:number=12.3(2)string型:表示字符串letstr:string="helloworld!"(3)boolean型letfin:Boolean=true(4)any型:可以跳过类型检测(不建议常用)leta:an
- 前台实时获取数据
爱吃虾的五花肉
前端ajaxwebsocketjavascript前端
实现网站实时通信·四种方式,第二三四种方式需要服务器端做操作的写计时器进行Ajax轮询//每秒调用一次http请求setInterval(function(){varxhr=newXMLHttpRequest();xhr.open('POST','url',true);xhr.setRequestHeader('Content-Type','application/json');xhr.send(
- 鸿蒙HarmonyOS NEXT开发:自定义事件拦截(ArkTS组件事件)
「已注销」
鸿蒙ArkTSharmonyos华为鸿蒙android驱动开发
为组件提供自定义的事件拦截能力,开发者可根据事件在控件上按下时发生的位置,输入源等事件信息决定控件上的HitTestMode属性。说明:从APIVersion12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。onTouchInterceptonTouchIntercept(callback:Callback)系统能力:SystemCapability.ArkUI.ArkUI
- 元组(tuple)转换为列表(list)
Eternal-Student
Pythonlistwindows数据结构
在编程中,特别是在Python中,经常需要将元组(tuple)转换为列表(list)。元组通常使用圆括号()表示,如(x,y),而列表使用方括号[]表示,如[x,y]。以下是如何将(x,y)转换为[x,y]的详细方法和示例。一、单个元组转换为列表方法1:使用list()函数Python提供了内置的list()函数,可以将元组直接转换为列表。示例代码:#定义一个元组tuple_point=(3,5)
- 超详细的Numpy基础教程!!!
不会爬虫的闲鱼
numpy数据分析python
Numpy是一个开源的Python库,用于支持大型多维数组和矩阵运算,同时提供了大量的数学函数库。它是科学计算中非常重要的工具。Numpy在数据科学中非常重要,因为它提供了高效的数组处理能力和广泛的数学函数库,这对于处理大规模数据集、进行科学计算和机器学习等任务至关重要。一、安装与设置如何安装Numpypipinstallnumpy验证安装的方法importnumpyprint(numpy.__v
- 人工智能_大模型091_大模型工作流001_使用工作流的原因_处理复杂问题_多轮自我反思优化ReAct_COT思维链---人工智能工作笔记0236
添柴程序猿
大模型开发&神经网络人工智能大模型工作流COT思维链ReAct自我反思优化大模型工作流开发
#清理环境信息,与上课内容无关importosos.environ["LANGCHAIN_PROJECT"]=""os.environ["LANGCHAIN_API_KEY"]=""os.environ["LANGCHAIN_ENDPOINT"]=""os.environ["LANGCHAIN_TRACING_V2"]=""#安装所需要使用的包!pipinstallopenailanggraphA
- 分布式光伏电站经济性指标优化分析
罗思付之技术屋
网络通信安全及科学技术专栏分布式
摘要结合工程经验,分析了工商业分布式光伏电站平准发电成本(LevelizedCostofEnergy,LCOE)、资本金内部收益率(InternalRateofReturn,IRR)的主要影响因素,其中平准发电成本主要受静态投资影响,资本金内部收益率主要受消纳比影响。针对上述影响因素,进一步讨论了LCOE、IRR指标优化方法与在工程项目中可选用的举措。最后,结合实际项目背景,在站址条件、组件瓦单价
- Django REST Framework中的序列化器类和视图类
八九燕来
djangorestfulsqlite
序列化器类一、Serializer序列化类Serializer是DRF的序列化器基类,提供基本功能,使用Serializer类需要自己定义字段名称和类型。BookSerializer(Serializer):name=serializers.CharField()price=serlializers.IntegerField()date=serlializers.DateField()Serial
- 不与最大数相同的数字之和(信息学奥赛一本通-1113)
Doopny@
信息学奥赛一本通算法数据结构
【题目描述】输出一个整数数列中不与最大数相同的数字之和。【输入】输入分为两行:第一行为N(N为接下来数的个数,Nusingnamespacestd;constintN=1e4+10;intnums[N];intmain(){intn;cin>>n;cin>>nums[1];intmax_v=nums[1],sum=0;for(inti=2;i>nums[i];if(nums[i]>max_v)ma
- 【贪心算法5】
m0_46150269
贪心算法算法
力扣738.单调递增的数字链接:link思路遇到c[i]>c[i+1]则c[i]–,然后就是给c[i+1]赋值‘9’;需要注意的是star初值问题,可见注释部分。classSolution{publicintmonotoneIncreasingDigits(intn){Strings=String.valueOf(n);char[]c=s.toCharArray();intstar=c.lengt
- 用Python写一个天气预报小程序
穿梭的编织者
Python脚本python小程序
一、界面效果二、完整代码importtkinterastkfromtkinterimportttkimportrequestsimportjsonfromdatetimeimportdatetimefromPILimportImage,ImageTkimportiofromttkbootstrapimportStyleclassWeatherApp:def__init__(self,root):s
- python手写kmeans算法
菜鸟懿
机器学习聚类算法python
kmean聚类是最基础和常见的算法,工程上使用比较常见,spark,sklearn都有实现,本文手写实现kmeans#!/usr/bin/pythonimportsysimportrandomimportmathdefcreate_rand_points(max_x,max_y,count):"""Createcountpoints(0-x),(0-y)."""points=[]foriinran
- redis操作zset类型的基本命令
JavaWeb学起来
redisredis数据结构
zset是有序存储的数据结构,它和set一样,不允许重复的值,下面我们总结一些常用的命令。zaddkey排序的数值值(这里为了zset可以有序的存储,需要设定数值)127.0.0.1:6379>zaddz15java3redis1mysql2nginx4oracle(integer)5zcardkey(返回key中的成员数)127.0.0.1:6379>zcardz1(integer)5zrang
- 5.PE——使用代码在任意节空白区添加shellcode
蓝屏达人
PE文件结构windows
继上一篇手动添加shellcode,这篇以代码来实现,要思路的话还请去上一篇看,这篇为纯代码main代码:#pragmaonce#include"FileUtil.h"#include"ImageUtil.h"intmain(){unsignedintsize;char*buf=ReadFile("D:\\project\\cpp\\test.exe",&size);//检查是否读取成功if(bu
- 手写一些常见算法
林tong学
算法排序算法java数据结构
手写一些常见算法快速排序归并排序Dijkstra自定义排序交替打印0和1冒泡排序插入排序堆排序快速排序publicclassMain{publicstaticvoidmain(String[]args){intnums[]={1,3,2,5,4,6,8,7,9};quickSort(nums,0,nums.length-1);}privatestaticvoidquickSort(int[]num
- 实时时钟(RTC)/日历芯片PCF8563的I2C读写驱动(4):基于HAL库实现硬件I2C读写接口
NW嵌入式开发
驱动开发单片机开发Linux开发RTCPCF8563实时时钟I2C驱动
0参考资料PCF8563数据手册(第11版——2015年10月26日).pdf1基于HAL库实现硬件I2C读写接口1.1初始化硬件I2C引脚/***@brief硬件I2C1初始化*配置为350KHz*@returnint0:成功-1:失败*/intbsp_hw_i2c1_init(void){/*速度配置为350KHzI2C1总线挂载器件:1.PCF8563(RTC器件,最高支持400KHz,实测
- 鸿蒙与持续集成
荔枝寄
harmonyosci/cd华为
鸿蒙操作系统(HarmonyOS)是华为公司开发的一款面向未来的分布式操作系统,它能够为各种设备提供统一的操作平台。为了确保鸿蒙应用的高质量和高效开发,持续集成(ContinuousIntegration,CI)实践显得尤为重要。持续集成是一种软件开发实践,即团队成员频繁地将代码集成到共享仓库中,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽早发现集成错误。鸿蒙与持续集成的
- C语言占位符详细介绍
南玖yy
C语言基础c语言开发语言
1.printf()的占位符有许多种类,与C语⾔的数据类型相对应。下⾯按照字⺟顺序,颜色标出常⽤的占位符,⽅便大家记忆。•%a:⼗六进制浮点数,字⺟输出为⼩写。•%A:⼗六进制浮点数,字⺟输出为⼤写。•%c:字符。•%d:⼗进制整数。•%e:使⽤科学计数法的浮点数,指数部分的e为⼩写。•%E:使⽤科学计数法的浮点数,指数部分的E为⼤写。•%i:整数,基本等同于%d,除了scanf有一点区别。•%f
- 深入理解 OTSU 算法(大津法——最大类间方差法)
ZHauLee
机器学习算法计算机视觉人工智能
一、算法概述OTSU算法是一种用于图像分割的自动阈值选择算法,广泛应用于图像处理领域,特别是在二值化过程中。它是由日本学者大津展之(NobuyukiOtsu)在1979年提出,因此得名“OTSU算法”。二、算法原理OTSU算法的核心思想是通过遍历所有可能的阈值,将图像分割为前景(目标)和背景两部分,使得这两部分之间的类内方差(intra-classvariance)最小,或者说使得这两部分之间的类
- Leetcode Hot100 第40题 297.二叉树的序列化和反序列化
onlyzzr
暑期实习刷题记录leetcode深度优先算法
/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):val(x),left(NULL),right(NULL){}*};*/classCodec{public:intindex;//Encodesatreetoasinglestring.str
- 计算机网络原理第七章,北大计算机网络原理第七章.pdf
weixin_39716043
计算机网络原理第七章
北大计算机网络原理第七章计算机网络计算机网络北京大学计算中北京大学计算中心王竹威王竹威zhuweiw@zhuweiw@第七章应用层应用层要做什么?应用层要做什么?180zhuweiw@第七章应用层应用层概述应用层概述应用进程交互方式应用进程交互方式在在IInternet应用层中应用层中,最主要的应用进程交最主要的应用进程交互方式就是客户—服务器(client/server,C/S)C/S)模式模式
- 二叉树的所有路径(leetcode 257
JohnFF
leetcodelinux算法
leetcode系列文章目录一、核心操作二、外层配合操作三、核心模式代码总结使用递归法一、核心操作1.判断是不是叶子节点(该节点的左右子节点都为空2.收获该路径(将储存的节点一个一个拿出来,用->连接if(cur->left==nullptr&&cur->right==nullptr){stringspath;for(inti=0;i";}spath+=to_string(path[path.si
- leetcode1005:K次取反后最大化的数组和
0cfjg0
leetcode算法java数据结构
K次取反后最大化的数组和给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组可能的最大和。publicintlargestSumAfterKNegations(int[]nums,intk){intmin;intindex;while(true){min=I
- 【动态规划1】
m0_46150269
动态规划算法
力扣509.斐波那契数链接:link思路这是一道经典的动态规划DP题,做动态有5步:1.确定dp[i]含义,表示第i个数的斐波那契数值是dp[i]2.dp数组初始化3.确定递推公式4.确定遍历顺序,从递推公式可以知道dp[i]是依赖dp[i-1]和dp[i-2],那么遍历的顺序一定是从前到后遍历的5.举例推导,草稿完成classSolution{publicintfib(intn){if(n<=1
- 【算法学习day10】
m0_46150269
算法学习
力扣202.快乐数链接:link思路这道题可能会遇到无限循环的情况,如何跳出循环是关键,我们可以用哈希表快速查询是否重复出现之前遇到的结果来结束循环。另外对数字的拆解也是解这道题的关键,下面来看题解吧。解:classSolution{publicbooleanisHappy(intn){Setset1=newHashSet0){inttemp=n%10;sum+=temp*temp;n/=10;}
- Leetcode1005:k次取反后最大化的数组和(贪心算法)
immortalize
leetcode算法题解答java算法贪心算法leetcode
Leetcode1005:k次取反后最大化的数组和题目:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组可能的最大和。思路:贪心算法代码如下:classSolution{publicintlargestSumAfterKNegations(int[]nu
- BigDecimal只覆盖整数部分或小数部分
支持未来
java算法开发语言
有个特殊处理需要把BigDecimal的整数部分和小数部分分开计算publicclassBdTest{publicstaticvoidmain(String[]args){BdBeanbt=newBdBean();bt.setBdA(4);System.out.println(bt.getB());bt.setBdA(0);System.out.println(bt.getB());bt.setB
- JButton追加事件监听
支持未来
JAVAActionList
画面和按钮生成publicclassmainTestClass{publicstaticJFramemain=newJFrame("テスト画面");//publicstaticJTextAreaResult=newJTextArea("",4,40);//publicstaticJButtonSubmit=newJButton("開始");/***メイン関数**@paramargs*/public
- 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的配置