- C# GDI+发生一般性错误(A generic error occurred in GDI+))
黄同学real
C#c#microsoft服务器
C#GDI+发生一般性错误(AgenericerroroccurredinGDI+))C#GDI+发生一般性错误(AgenericerroroccurredinGDI+))解决思路:因为.netGDI+是对底层的封装。所以可以尝试用Marshal.GetLastWin32Error();函数获得底层错误代码。try{image.Save(filename,System.Drawing.Imagin
- CLR via C# 读书笔记 6-2 不同AppDomain之间的通信
xuefeiliuyuxiu
面试准备C#
原文:http://www.cnblogs.com/PurpleTide/archive/2011/01/06/1927643.html跨AppDomain通信有两种方式1.MarshalByreference:传递引用2.MarshalByValue:把需要传递的对象通过序列化反序列化的方式传递过去(值拷贝)只有标记为可序列化Serializable的类才能通过MarshalByValue的方式
- Flask-RESTFul 之 RESTFul 的响应处理
Jasonakeke
Flask框架flaskrestfulpython
Flask-RESTFul之RESTFul的响应处理使用`Resource`类的`get()`,`post()`,`put()`,`delete()`等方法直接返回使用`abort`函数使用`make_response`自定义响应序列化数据使用`fields`和`marshal_with`使用自定义的序列化函数嵌套序列化使用`marshal`函数在使用Flask-RESTful开发RESTfulA
- 【C#】【EXCEL】Bumblebee/Classes/Marshal2.cs
hmywillstronger
c#excel开发语言
Bumblebee/Classes/Marshal2.cs这个流程图将描述Marshal2.GetActiveObject方法的执行过程。成功/Success失败/Failure开始/Start调用GetActiveObject/CallGetActiveObject尝试CLSIDFromProgIDEx/TryCLSIDFromProgIDEx获取CLSID/GetCLSID调用CLSIDFro
- 【C#】【SAP2000】读取SAP2000中所有Frame对象的应力比到Grasshopper中
hmywillstronger
服务器linux数据库
if(build==true){//连接到正在运行的SAP2000//使用System.Runtime.InteropServices.Marshal.GetActiveObject方法获取正在运行的SAP2000实例cOAPImySapObject=(cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000
- Go json Marshal & UnMarshal 的一点小 trick
yeshan333
golangjson开发语言
在编写WebService等涉及数据序列化和反序列化的场景,对于JSON类型的数据,在Go中我们经常会使用到encoding/jsonPackage。最近微有所感,小水一篇omitemptyJSON数据的UnMarshal我们经常会配合StructTags使用,让Struct的Filed与JSON数据的指定property绑定。如果要序列化为GoStruct的JSON数据对应的Fields相关的J
- mavlink协议详解_MAVLink通讯协议在STM32上移植,并自定义协议
马卡斯·扬
mavlink协议详解
mavlink全称是(MicroAirVehicleMessageMarshallingLibrary),从名字可以看出,mavlink是主要面向飞控的一种开源通信协议。因此它默认定义了很多适用于飞控的信息格式,比如heartbeat(心跳信号,每隔一两秒主从通信一次,以验证通信是否正常)。首先要说明的是,mavlink作为一个非常可靠(至少两字节校验)、支持类型丰富(messageID、comp
- 塑造偏见的3种心理成因
Guuoyy
是什么让我们对世界产生偏见?美国气象协会前主席马歇尔·谢波德(J.MarshallShepherd)在TEDxUGA演讲中分享了他对于人类偏见的看法。在他看来,偏见的形成主要有三种心理成因,分别是证实偏差、邓宁-克鲁格效应和认知失调。第一是证实偏差。我们会拼命寻找支持自己观点的证据,忽略对自己观点不利的证据。第二是邓宁-克鲁格效应(Dunning-KrugerEffect),指的是能力欠缺的人会有
- Android序列化接口Parcelable异常:java.lang.RuntimeException: Parcel android.os.Parcel: Unmarshalling unkn...
亲爱的Joe
Parcelabel序列化后写入内存,因此比Serializable更高效,但是其序列化和反序列化都需要开发者主动实现。实现原理十分简单:按照被序列化的对象的属性顺序依次写入内存指定区,然后反序列化时按照同样的顺序进行读取。关于异常java.lang.RuntimeException:Parcelandroid.os.Parcel:Unmarshallingunknowntypecode。主要有两
- 老爸老妈浪漫史How I Met Your Mother第1季第10集台词
kuailexuewaiyu
英文中文NowIrememberalotofstoriesfrombackinthedays现在我还记得很多beforeImetyourmother.遇见你妈妈之前的事情Butthere'sonestoryIdon'tremember.但有一个故事我是不记得的UncleMarshallstillreferstoMarshall叔叔一直itas"thepineappleincident."把它称为菠
- 【Web】vulhub Fastjson反序列化漏洞复现学习笔记
Z3r4y
javajava反序列化fastjsonmarshalsecwebctfvulhub
目录1.2.24RCECVE-2017-18349复现流程原理分析1.2.47RCECNVD-2019-22238复现流程原理分析漏洞探测1.2.24RCECVE-2017-18349复现流程vulhub启动靶场用marshalsec启动LDAP/RMI服务java-cpmarshalsec-0.0.3-SNAPSHOT-all.jarmarshalsec.jndi.LDAPRefServer"h
- golang struct json tag的使用及深入理解
yuchenfw
golang源码分析gojsontag使用struct
一、sturctjsontag的使用1.tag格式说明structjsontag主要在struct与json数据转换的过程(Marshal/Unmarshal)中使用。json的tag格式如下:Keytype`json:"name,opt1,opt2,opts..."`说明:变量必须是可导出的(Key首字母必须大写),否则会被忽略处理。没有jsontag或者tag中name省略(但不能少了",")
- Go语言中的JSON处理
帅气的昵称都有人用了
上一次我们讲到了关于Go中的对于XML的处理,这次我们来说一下关于JSON的处理。JSON是一种轻量级的数据交换语言,以文字为基础,并且具有自我描述性且易于阅读。在Go语言当中同样我们提供了json包便于我们对JSON数据进行处理。处理JSON解析JSON有两种方法,一种是解析到结构体,另一种是解析到接口,我们先来看第一种方法:funcUnmarshal(data[]byte,vinterface
- C#面:.NET Remoting 的工作原理是什么
那个那个鱼
C#面试题c#.netc#开发语言
.NETRemoting是一种用于在分布式应用程序中进行远程通信的技术。它允许在不同的应用程序域之间进行对象的传输和通信。.NETRemoting的工作原理:定义远程对象:首先,需要定义一个远程对象,该对象必须继承自MarshalByRefObject类或实现ISerializable接口。这个远程对象将会在不同的应用程序域之间进行通信。配置远程通信:在应用程序的配置文件中,需要配置远程通信的相关
- 高效数据通信的完美组合:基于Netty和Marshalling的实战编解码技术
SteveCode.
netty
为什么Netty需要编解码器网络编程就是意味着:两个服务器要进行数据结构化通信。然而通信的数据就是流。有了编码器和解码器就可以很方便直观实现数据结构化通信netty默认了编解码器StringDecoder、StringEncoder等等数据流向图源代码地址在下面上代码代码结构ClientpublicclassClient{publicstaticvoidmain(String[]args)thro
- Parcel: Class not found when unmarshalling: 自定义类
喜欢踢足球的老罗
Android开发之旅ANDROIDunmarshallingandroid
问题描述如标题,这个问题网上有很人遇到,场景是跨进程启动activity或service通传Intent传Parcel数据时遇到,网上总结是类加载器设置不对的原因。我遇到的问题场景是在当前进程中,启动新的activity解析传过来的Parcel子类时出现的异常,异常backtrace如下:Causedby:android.os.BadParcelableException:ClassNotFoun
- 《亲密关系》摘抄5
好像只剩下这只狗和我
大量研究表明女性之间的友谊是以情感分享(emotionalsharing)和自我表露为其特征的,而男性友谊则是围绕着共同活动(sharedactivities)、相伴相随和搞笑娱乐而展开的(Fehr,1996;Marshall,2010)。这显得过于简单化,但多年前赖特(Wright,1982)创造出的两个精辟词语今天看来仍熠熠生辉:女性的友谊是“面对面”(face-to-face),而男性的友谊
- JCEF学习
£小羽毛
java
JCEF重要概念CEFCEF,全称ChromiumEmbeddedFramework,它是基于GoogleChromium的开源项目,它的目标是能够向第三方程序添加WEB浏览器功能,以及可以使用HTML、CSS和JS渲染界面。CEF框架是由MarshallGreenblatt在2008年创立的,由C/C++编写而成而JCEF则是CEF的java接口,可以使用java调用CEF的接口。JCEF的官方
- go数据格式-JSON、XML、MSGPack
leellun
go从入门到实践golangjsonxml
1.JSONjson是完全独立于语言的文本格式,是k-v的形式name:zs应用场景:前后端交互,系统间数据交互json使用go语言内置的encoding/json标准库编码json使用json.Marshal()函数可以对一组数据进行JSON格式的编码funcMarshal(vinterface{})([]byte,error)示例过结构体生成jsonpackagemainimport("enc
- err:rpc error: code = Internal desc = grpc: error unmarshalling request: string field contains inval
aashuii
rpcgolang网络
grpc客户端callrpc收到:err:rpcerror:code=Internaldesc=grpc:errorunmarshallingrequest:stringfieldcontainsinvalgrpc服务端的RPC回调没有调到。一般情况下,如果真是string字段包含中文字符客户端会返回grpc:errormarshallingrequest:stringfieldcontainsi
- proto: cannot parse invalid wire-format data
aashuii
这个错误指的是proto消息中类型错误,可以查看具体消息内容。如果是后面全是0,一般是消息截断错误。比如申请固定大小buff后没有用实际长度截断,在go中一般修改为buff[:n]ERRO[0121]PDUUnmarshalerror:proto:cannotparseinvalidwire-formatdata,inport-2,PDU-[8126511011110010149667103836
- 一夜暴增200城,智驾开城秘诀在哪?小鹏、理想、大疆等各有不同
HiEV
智能汽车自动驾驶新能源汽车汽车自动驾驶
作者|Marshall编辑|祥威一夜过后,城市NOA可用范围突然增至两百多城市,这是最近小鹏的智驾给大家的印象。我们曾在「特斯拉、小鹏开路,城市NOA距好用还有几年?」一文中,探讨了城市NOA落地过程中所面临的地图问题、用户体验问题以及商业模式问题。目前,跑在前列的小鹏,以及华为、蔚来、理想、大疆车载(下称大疆)等均给出了解题方法,随着这些问题的逐步解决,城市NOA的可用覆盖范围也显著扩大了。小鹏
- 盖儿加朵有望合作巨石强森,出演新作《红色通缉令》
老金博客
巨石强森(DwayneJohnson)预计在2020年推出新作《红色通缉令》(暂译,RedNotice)。电影将由《摩天大楼》罗森·马歇尔·瑟伯(RawsonMarshallThurber)自编自导,这片将成为两人合作的第三部电影。根据外媒报导,在挑选《红色通缉令》和巨石强森对戏的女演员名单中,《神奇女侠》盖儿加朵目前是环球心中的首选。两位演员自2013年在《速度与激情6》(Fast&Furiou
- go 语言中 json.Unmarshal([]byte(jsonbuff), &j) 字节切片得使用场景
qq_42533216
开发语言go
struct_tag的使用在上面的例子看到,我们根据结构体生成的json的key都是大写的,因为结构体名字在go语言中不大写的话,又没有访问权限,这种问题会影响到我们对json的key的名字,所以go官方给出了struct_tag的方法去修改生成json时,对应key的名字packagemainimport("encoding/json""fmt")//成员变量名首字母必须大写typeITstru
- GBASE南大通用GBaseConnection 类处理
GBASE数据库
数据库GBASE南大通用GBASE
GBASE南大通用代表一个打开的GBase服务器数据库连接。这个类不能被继承。对于该类所有成员的列表,参考GBaseConnection成员。继承层次System.Object|__System.MarshalByRefObject|__System.ComponentModel.Component|__System.ComponentModel.Component|__GBase.Data.G
- 【GitHub项目推荐--微软开源的可视化工具】【转载】
旅之灵夫
GitHub项目推荐microsoft
说到数据可视化,大家都很熟悉了,设计师、数据分析师、数据科学家等,都需要用各种方式各种途径做着数据可视化的工作.....当然许多程序员在工作中有时也需要用到一些数据可视化工具,如果工具用得好,就可以把原本枯燥凌乱的数据,变得直观又形象,瞬间高大上。今天和大家分享一个由微软开源的可视化工具-SandDance。前段时间,首席软件开发工程师DanMarshall在其帖子中表示:“SandDance是M
- C# 简答操作共享内存方法
小猫会飞
C#共享内存C#共享内存
C#操作共享内存的一个帮助类,读写和打开classShareMemoryHelper{[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]privatestaticexternIntPtrOpenFileMapping(intdwDesiredAccess,[MarshalAs(UnmanagedType.Bool)]boolbInheritHandle
- 【golang】结构体与json相互转换,map与json相互转换
七八个星天
一.结构体转json,使用json.Marshal()返回值([]byte,error)packagemainimport("encoding/json""fmt")typeStudentstruct{NamestringAgeintGenderbyteSubject[]string}funcmain(){s:=Student{"XiaoMing",15,'M',[]string{"数学","语文
- 【源码阅读】blockchainⅡ
Camina hacia ti
区块链区块链
11.1NewBlockHandlerfunc(bc*BlockChain)NewBlockHandler(payload[]byte,peerpeer.ID)error{该函数是对新的区块的数据处理,payload是一个字节切片,表示新块的数据;peer是一个peer.ID类型的变量,表示发送新块数据的对等节点。:使用err:=proto.Unmarshal(payload,&nweBlock)
- 关于go:为什么json.Unmarshal为什么使用引用而不使用指针?
湫然Quin
gogolangjsonjava
关于go:为什么json.Unmarshal为什么使用引用而不使用指针?typeShortTranscodeEntitystruct{Weightint`json:"weight"`//任务权重TaskIdstring`json:"taskId"`//任务idTaskNamestring`json:"taskName"`//视频标题TransTypeint`json:"transType"`//转
- 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的配置