- ES6学习笔记
小白探索世界欧耶!~
随手记录JavaScript前端javascript笔记经验分享学习ES6总结
ECMAScript6入门-《阮一峰ECMAScript6(ES6)标准入门教程第三版》-书栈网·BookStackECMAScript6入门目录其他《ECMAScript6入门》是一本开源的JavaScript语言教程,全面介绍ECMAScript6新增的语法特性。https://www.bookstack.cn/read/es6-3rd/sidebar.mdES6与JavaScriptES6是
- Javascript ES6中export与import指令使用说明
大飞飞鱼
node.jsHTML5技术nodejsexportimportjsimportjsexport
javascriptES6支持模块化编程,模块是独立的文件js文件,该文件内部的所有的变量与函数都是局限在该模块内部,外部模块无法访问,如果需要在调用的模块之内使用这些符号,模块内部的变量与函数必须设置为输出。符号的输出是通过export关键字来制定的。一、export//tools.js//输出变量方式1exportvarfirstName='Michael';exportvarlastName
- JavaScript ES6 面试题
qq_42431718
javascriptes6开发语言
JavaScriptES6面试题解释箭头函数(ArrowFunctions)的特点及用途。箭头函数是ES6引入的一种新的函数定义方式。它具有以下特点:使用箭头(=>)来定义函数。自动绑定上下文,无需使用bind()或that=this。没有自己的this,会捕获所在上下文的this值。不能用作构造函数,不能使用new关键字。箭头函数常用于简化函数的语法,特别是在回调函数中。什么是解构赋值(Dest
- 探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
w风雨无阻w
ecmascripttypescriptjavascriptes6开发语言
在现代Web开发中,JavaScriptES6(ECMAScript6)已经成为了开发者们的首选。ES6引入了许多强大的功能和语法改进,为我们提供了更加优雅和高效的编程方式。在本篇博文中,我们将探索八种常见的JavaScriptES6使用技巧,帮助你提升开发效率,并为你的代码注入新的活力。无论你是初学者还是有经验的开发者,相信本文都能为你带来新的启发。一、解构赋值(DestructuringAss
- Vue双向数据绑定和小程序数据驱动有何异同?
一个大长腿
前端vue小程序
Vue双向数据绑定和小程序数据驱动都是前端框架或技术的一种应用方式,用于实现数据与视图之间的自动同步更新。它们的异同点如下:实现方式不同:Vue双向数据绑定是通过Object.defineProperty()方法和发布-订阅模式实现的,而小程序数据驱动是通过JavaScriptES6中的Proxy对象实现的。应用场景不同:Vue主要用于构建大型的单页面应用程序(SPA),而小程序主要用于开发微信小
- ES6 import
landiyaaa
es6前端javascript
这里import的文件是项目内自己export的对象,并非package.json里引用的包。后者的打包策略和配置有关。原理:彻底理解JavaScriptES6中的import和export-知乎
- 【超全】JavaScript知识速查:JavaScript ES6标准语法
Xy丶Promise
javascriptes6开发语言webweb3
JavaScript知识速查文章目录JavaScript知识速查@[toc]JavaScriptES6标准语法1.变量和常量以及块级区域变量(`let`):常量(`const`):2.模板字符串3.解构赋值数组解构:对象解构:4.数组和对象的扩展扩展运算符(`...`):Array.from:Object.assign:5.类和对象定义类:继承:6.箭头函数7.Promise原理机制:触发机制细节
- es6字符串添加html标签,JavaScript_详解JavaScript ES6中的模板字符串,在 ES6 中引入了一种新的字符 - phpStudy...
weixin_39759918
es6字符串添加html标签
详解JavaScriptES6中的模板字符串在ES6中引入了一种新的字符串字面量—模板字符串,除了使用反引号(`)表示,它们看上去和普通的字符串没有什么区别。在最简单的情况下,他们就是普通的字符串:context.fillText(`Cecin'estpasunecha?ne.`,x,y);context.fillText(`Cecin'estpasunecha?ne.`,x,y);之所以被称为模
- html 模板字符串,ES6:模板字符串
miss废柴
html模板字符串
标签:模板字符串JavaScriptES6前端web本博客版权归本人和饥人谷所有,转载需说明来源内容转载自阮一峰老师的ES6入门1.基本用法传统的JavaScript语言,输出模板通常是这样写的。$('#result').append('Thereare'+basket.count+''+'itemsinyourbasket,'+''+basket.onSale+'areonsale!');上面这
- JavaScript ES6语法
酒茶白开水
web前端javascriptes6letconst箭头函数解构赋值内置对象扩展
JavaScriptES6语法代码下载ES6相关概念ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范。ES6实际上是一个泛指,泛指ES2015及后续的版本。年份版本2015768ES20152016768ES20162017468ES2017201868ES2018每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人
- 前端学习网站
吟游诗人Bibab
这里推荐几本书籍和我常用的学习网站(需要翻墙):《图解HTTP》《JavaScriptES6函数式编程入门经典》《学习JavaScript数据结构与算法》《你不知道的JavaScript》系列MDN,淘系前端团队,凹凸实验室medium.com/codepen.io/dev.to/developers.google.cn/web/
- React Native 学习
CaesarXI
基础JavaScriptES6/ES7TypeScript选学CSSFlex布局(css中的重点)ReactNativeReactNative原理ReactNavigation(路由,也就是页面跳转控制)数据流控制Redux(根据项目数据流的控制选学)Dva(对Redux的封装,根据项目数据流的控制选学)MobX(根据项目数据流的控制选学)网络网络请求Axios第三方UI库蚂蚁金服antdesig
- JavaScript ES6新特性
林梓阳
JavaScriptjavascript前端开发语言
JavaScriptES6带来了新的语法和特性,使得代码更加的现代和可读。它包括许多重要功能,如箭头函数、模板字符串、解构赋值等等。const和letconst是ES6中用于声明变量的新关键字。const比var强大。一旦使用,变量就不能重新分配。换句话说,它声明的是一个只读的常量。这对于定位选择器非常有用。例如,当我们有一个触发事件的按钮时,或者当您想在JavaScript中选择HTML元素时,
- 前端推荐书单
刘大
CSScss世界css揭秘JavaScriptJavaScript高级程序设计你不知道的JavaScriptJavaScript忍者秘籍第二版锋利的jQuery深入理解ES6ES6标准入门JavaScriptES6函数式编程入门经典高性能的JavaScriptJavaScript设计模式与开发实践高效前端:web高效编程与优化实践JavaScript&jQuery交互式web前端开发ReactRe
- ES6中解构、扩展运算符和rest运算符
青颜的天空
Javascript高阶ES6
JavascriptES6/ES2015尘埃落定,其中许多特性其实是为了简化代码。解构运算符,扩展运算符,和rest运算符就是其中很好的特性,它们可以通过减少赋值语句的使用,或者减少通过下标访问数组或对象的方式,使代码更加简洁优雅,可读性更佳。1.解构解构的作用是可以快速取得数组或对象当中的元素或属性,而无需使用arr[x]或者obj[key]等传统方式进行赋值1.1数组解构赋值:ES6允许按照一
- ES6 - Map的用法
突破自己,琳琅天上
javascriptes6javascript前端
前言:最近在公司些项目时,多次用到Map函数,故来重新学习,温故而知新map是JavaScriptES6新出的语法,可以帮助我们更好的操作对象Map介绍Map对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或一个值Map对象是键值对的集合。Map中的一个键只能出现一次;它在Map的集合中是独一无二的。Map对象按键值对迭代——一个for…of循环在每次迭代后
- ES6解构和扩展运算符
轻丨尘
参考:妙用ES6解构和扩展运算符让你的代码更优雅JavascriptES6/ES2015尘埃落定,其中许多特性其实是为了简化代码。解构运算符,扩展运算符,和rest运算符就是其中很好的特性,它们可以通过减少赋值语句的使用,或者减少通过下标访问数组或对象的方式,使代码更加简洁优雅,可读性更佳。现在各浏览器及node.js都加快了部署ES6的步伐。解构解构的作用是可以快速取得数组或对象当中的元素或属性
- 如何在JavaScript中使用JSP标签
狂龙骄子
Javajsptagjsp标签ES6模板字符串EL表达式语法冲突
面对“古老”的项目,延续其生命并发挥最大价值,是件很苦逼的事儿。如何在JS中使用JSP标签?如何使ES6模板字符串含有JSP标签、EL表达式、JS变量正常识别?如何解决JSP的EL表达式和ES6模板字符串语法冲突?本文将遇到的几处难点做梳理、并结合实际案例深入剖析。目录1、简述1.1、JSPEL表达式1.2、JavaScriptES6模板字符串2、案例剖析2.1、JavaScript脚本命名2.2
- JavaScript中的代理和生成器
culiu9261
javapythonjavascriptjs数据库ViewUI
Let’stakeadiveattwoconstructsthatwereintroducedintheJavaScriptES6specification:让我们深入研究一下JavaScriptES6规范中引入的两个构造:Proxy代理Generator发电机AsolidunderstandingoftheseconstructswillprovehandywhenworkingwithJava
- JavaScript ES6 让我们写得少,做得多
勿忘巛心安
JavaScriptES6带来了新的语法和新的强大功能,使您的代码更现代,更易读。它允许您编写更少的代码并执行更多操作。ES6向我们介绍了许多强大的功能,如箭头函数,模板字符串,对象结构,模块等,让我们来看看。constandletconst是ES6中用于声明变量的新关键字。const比var更强大。使用后,无法重新分配变量。换句话说,它是一个不可变的变量,除非它与对象一起使用。这对于定位选择器非
- JavaScript 学习-17.扩展运算符(...)的使用
上海-悠悠
JavaScriptjavascript
前言JavaScriptES6新增了扩展运算符的语法,扩展运算符(spread)是三个点(…)。该运算符主要用于,将一个数组转为用逗号分隔的参数序列,通常用于函数的调用传参。数组合并把数组转为分割的参数序列leta=["hello","world","yoyo"];console.log(...a)//helloworldyoyo可以用于2个数组的合并leta=["hello","world","
- JavaScript ES6知识点汇总(上)
万物之恋
javascriptes6前端
JavaScriptES6知识点汇总(上)一、module、export、import二、Generator函数三、for...in和for...of四、Reflect简单介绍下,jses6的一些新特性。一、module、export、importmodule、export、import是ES6用来统一前端模块化设计方案的设计思路和实现方案。export、import的出现统一了前端模块化的实现方
- iOS字符串如何转为Raw String
frog78
问题分析在javascriptES6中,String多了一个方法String.raw``,详见http://docs.w3cub.com/javascript/global_objects/string/raw/。String.raw``可以把一个普通的字符串转为RawString。举个栗子,字符串"\abc",是3个字符构成,分别是'\a','b','c',通过String.raw``后,可以变
- 前端面试八股文(详细版)—上
旺旺大力包
JavaScriptCSSHTML面试前端
本文将详细讲解HTML、CSS、JavaScript、计算机网络知识等方面的内容,Vue、React、git、项目开发实例等内容放在下篇,预祝各位成功上岸!第一板块:JavaScriptES6新增内容1、模板字符串变量名写在${}中,${}中可以放入JavaScript表达式2、箭头函数3class类的继承classAnimal{}classDogextendsAnimal{constructor
- 2022前端知识整理:十、vue基础
赵越峰
vue.js
十、vue基础2022前端知识整理:第十部分、vue基础,仅包含vue2.0相关知识,建议先完成html5、css3和JavaScriptES6之后再学习。部分图片未上传成功,稍后完善,请见谅。##1、webpack①webpack基本概念webpack是静态模块打包工具,它可以减少文件数量,缩减代码体积,提高网页打开速度,主要作用是分析压缩和打包代码。②webpack使用步骤初始化包环境yarn
- JavaScript 面向对象
菜鸟小铭
JavaScript学习jsjavascript面向对象编程
JavaScript高级语法之面向对象这篇文章主要讲了JavaScriptES6之后有类的概念的面向对象的方法和ES5之前没有类的概念时的面向对象的方法如有错误,欢迎前来指正JavaScript面向对象(ES6之后)JavaScript中的对象是无序的属性和方法的集合创建类同样使用大驼峰命名法,首字母大写代码示例://声明类class类名{//classbody}//实例化对象var对象名=new
- 前端面试题
give it a try~
前端javascriptcss3
前端面试javascriptES6新特性CSS3新特性HTML5特性css盒模型flex弹性布局html选择器计网http状态码Vue数据结构红黑树javascriptES6新特性1.数据类型Symbol和BigInt2.声明变量方法let,const关键字3.解构赋值4.箭头函数5.扩展运算符6.剩余参数(可变参数)7.数组,字符串的扩展方法Array扩展方法:find,forEach,find
- JavascriptES6新特性之map和reduce详解
目录说明1.map()代码示例:2.reduce()代码示例:综合案例总结说明ES6中,数组新增了map和reduce方法。1.map()map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。代码示例:有一个字符串数组,我们希望转为int数组letarr=['1','20','-5','3'];console.log(arr)//传统写法letnewArr=arr.map(
- Roadmap丨2020
wangjianuo
Web前端JavaScriptES6/7/8/9/10TypeScriptReactBasiscomponentWillReceivePropsUmiUmiDvaAntdCRDUDemoUmithis.props.children传参数DvaAntdVueVuexHTML(5)/CSS(3)拖放(Drag&Drop)JavaBasis多线程高并发SpringSpringSpringMVCSprin
- 写出整洁的 JavaScript 代码 ES6 版
javascript
好的代码不仅仅是可以跑起来的代码,更是可以被其他人轻松阅读、重用和重构的代码,因为代码除了实现功能外,大部分的时间都是要被你或是团队其他成员维护的。虽然本文主要专注于编写干净整洁的JavaScriptES6代码,并且不与任何框架相关,但是下面将要提到的绝大多数示例也适用于其他语言,另外,下面的示例也主要是从RobertC.Martin的书CleanCode中所采纳的建议,也不意味着要严格遵守。变量
- 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的配置