- java中的sort()
愿随我ღ
importjava.util.*;publicclassCollectionTest{publicstaticvoidmain(String[]args){Listl=newArrayList();l.add(10);l.add(1);l.add(0);l.add(120);for(Iteratorit=l.iterator();it.hasNext();){System.out.println
- mongodb 常用命令
打瞌睡的小张
mongodb数据库nosql
命令行连接mongodb:mongosh“mongodb+srv://host”--apiVersion1--usernamexxxxx查看有哪些库:showdatabases切换到操作库:usename必须切换到指定数据库才可以进行下面的增删改查操作查看表:showcollections查询所有数据:db.collectionName.find()查询表中一条数据:db.collectionNa
- 深入理解Java的集合框架
一碗黄焖鸡三碗米饭
java
深入理解Java的集合框架Java集合框架(JavaCollectionsFramework,简称JCF)是Java语言中最常用的API之一,它为开发者提供了强大且灵活的数据结构支持。集合框架通过一系列的接口和实现类,帮助我们管理、存储和操作数据。Java集合框架包括常见的List、Set、Map等接口及其具体实现类,合理选择适当的集合类型,对于程序性能和代码可维护性至关重要。本文将深入解析Jav
- 深入剖析Java内存管理与垃圾回收:优化程序性能的核心技能
一碗黄焖鸡三碗米饭
Java基础知识全面解析java开发语言后端jvm
深入剖析Java内存管理与垃圾回收:优化程序性能的核心技能在现代Java开发中,内存管理与垃圾回收(GC)是至关重要的议题。良好的内存管理不仅能够有效避免内存泄漏,还能提高程序的性能。Java作为一种高效的编程语言,采用了自动垃圾回收机制(GarbageCollection),大大简化了内存管理。但这并不意味着开发者可以完全忽视内存的管理与优化。本文将深入探讨Java的内存管理机制、堆与栈的概念、
- python实现有向无环图(DAG)
少年白char
python
摘自dagobah项目dagfromcollectionsimportOrderedDict,defaultdictfromcopyimportcopy,deepcopyclassDAG(object):"""Directedacyclicgraphimplementation."""def__init__(self):"""ConstructanewDAGwithnonodesoredges."
- C#中的GC机制简析
_DRAGON__XU
C#c#
关于GC在C#中,垃圾回收(GarbageCollection,GC)是.NET框架的一部分,负责自动管理内存。垃圾回收机制的目标是识别和清理不再使用的对象,从而避免内存泄漏,并帮助开发者避免手动内存管理的复杂性。1.GC的基本概念垃圾回收器会监控对象的生命周期,并在对象不再使用时释放它们占用的内存空间。GC会自动处理堆上的对象(例如通过new创建的对象),而栈上的局部变量和方法参数的生命周期则由
- 【Python 语法】 collections.Counter 用法
一杯水果茶!
人生苦短我用Pythonpython
Counter的基本用法Counter示例示例1:创建`Counter`并统计元素出现次数示例2:字符串中各字符出现次数示例3:`most_common(n)`返回出现次数最多的前n个元素及其次数示例4:`elements()`方法,按照计数的频率返回元素示例5:`update()`方法示例6:`subtract()`方法Counter是Python标准库collections模块中的一个子类,专
- List把特定元素排在第一位
inner_peace8
Java总结集合List把特定元素排在第一位
人工智能,零基础入门!http://www.captainbed.net/inner有的时候会有这样的需求,就是从数据库查出来的list要做一些处理,比如部门成员列表,产品要求你把部门经理排在第一位,这个时候就可以用集合工具类下的自带方法,做法:需要遍历集合,找到这个元素在集合中的位置,然后使用Collections.swap(list,o,i)(O:为元素目前所在位置,i:为要放置的位置)方法来
- MongoDb的“not master and slaveok=false”错误及解决方法
chen88358323
DBmongo
原文链接在SECONDARY查询出发现如下错误:SECONDARY>showcollections;SatAug415:29:00uncaughtexception:error:{"$err":"notmasterandslaveok=false","code":13435}这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下:SECONDARY>rs.slaveOk();
- MongoDb 分组统计查询
**Dragon**
mongodb数据库
db.getCollection("CommonStatisticsLog").aggregate([ { "$match":{ "CreateTime":{ "$gte":ISODate("2025-02-13T09:00:00Z"), "$lte":ISODate("2025-02-13T09:59:59Z") }, "Need
- asp.net core系统记录当前在线人数
王焜棟琦
asp.netcore后端asp.netcore
实时记录当前在线人数,登录后保持120秒在线状态,在线状态保存在缓存中,采用滑动过期,在120秒内请求了系统,自动续活120秒;超过时间则移除用户在线状态;需要在登录过滤器标记用户在线状态需要排除循环请求的url,比如定时请求的待办数量登录成功后标记用户在线web记录当前在线人数状态usingSystem;usingSystem.Collections.Generic;usingSystem.Li
- C#——INI文件操作
Vector_LW
CSharp
usingSystem;usingSystem.Text;usingSystem.IO;usingSystem.Runtime.InteropServices;usingSystem.Collections.Generic;publicclassOperateIniFile{privatestaticStringfilePath="";#regionAPI函数声明[DllImport("kerne
- c#模拟鼠标点击左键
王焜棟琦
C#c#
c#模拟鼠标点击左键,这里调用的是windows系统函数,usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading.Tasks;namespaceWindowsFormsAppHalco
- 宇树G1嵌入式软件架构及技术实现
爱吃青菜的大力水手
架构fpga开发机器人算法
Opensourcedatacollection:https://github.com/unitreerobotics/avp_teleoperateOpensourcelearningalgorithms:https://github.com/unitreerobotics/unitree_IL_lerobotOpensourcedatasetsandmodels:https://hugging
- Java垃圾回收机制
karte
Java垃圾回收机制Java垃圾回收机制
Java垃圾回收机制说到垃圾回收(GarbageCollection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有
- 【设计模式】【行为型模式】迭代器模式(Iterator)
FLZJ_KL
设计模式设计模式迭代器模式java
hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD2025本人正在沉淀中…博客更新速度++欢迎点赞、收藏、关注,跟上我的更新节奏当你的天空突然下了大雨,那是我在为你炸乌云文章目录一、入门什么是迭代器模式?为什么要迭代器模式?怎么实现迭代器模式?二、迭代器模式在源码中的运用Java集合框架(JavaCollectionsFramework)Java集合框架迭代器的使用
- 多线程异步执行,等待执行全部执行完成后,返回全部结果 CompletableFuture和Future以及CountDownLatch 使用
知道的越多越难受
javajavajvmservlet
需求:需要异步执行多个任务,获取每个任务的结果。根据任务结果判断是否继续后面的操作//存储全部任务返回结果集合publicstaticvoidmain(String[]args){Listobjects=Collections.synchronizedList(newArrayList{try{Thread.sleep(1000);}catch(InterruptedExceptione){e.p
- unity3d:ugui 长按按钮
四夕立羽
UGUIUnity3d技术笔记unity3dugui长按按钮
usingUnityEngine;usingSystem.Collections;usingUnityEngine.EventSystems;usingUnityEngine.Events;publicclassRepeatButton:MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler{publicboo
- Python的垃圾回收机制,详解Python的GC体系
李云龙炮击平安线程
python系统架构面试跳槽后端架构
什么是垃圾回收?为什么需要垃圾回收?垃圾回收即Garbagecollection简称为GC,是Python,Java等高级语言所使用的内存回收机制,由虚拟机帮助我们管理内存,让它自动把我们去追踪和回收内存中的对象。没有作用的对象就是垃圾,虚拟机就是扫地机器人,在某个时机自动帮我们清除垃圾。区别于C和C++这种让用户自己进行内存管理的方式,由虚拟机代用户管理内存。让用户自己进行内存管理的方式固然自由
- List对象进行排序
Lin_Miao_09
java优秀例子listjava
目录一、List对象中某个值进行排序代码示例注意事项二、List.sort和Collections.sort异同1.方法所属2.使用方式3.是否修改原列表4.泛型支持5.性能6.适用场景7.示例代码对比使用testList.sort使用Collections.sort8.总结三、为对象多个属性进行排序示例代码一、List对象中某个值进行排序用空间换时间,Java在内存中进行对象集合排序。在Java
- Java集合核心详解【十分钟带你了解整个集合体系】
小小怪下士yeah
Java集合核心知识点开发语言java数据结构算法链表
前言:集合是Java中非常重要的一章,学习难度也相对较大,不会很快就能掌握,这里我们先对集合框架有一个大概的了解,记住其中的基础知识,后面深入研究某一个集合时,才能更好的掌握。文章目录一、集合介绍二、集合与数组的区别三、集合框架图四、Collection详解图五、Map详解一、集合是什么?Java是面向对象的语言,一般我们在编程的时候自然需要存储对象的容器,数组可以满足这个需求,但是数组初始化时长
- winform中的mousemove事件,click与mouseup,mousedown事件的关系,
qq_43361844
button的事件处理c#winform
首先click是mousedown和mouseup的结合,只有两个事件都发生了才会产生click事件,我在做button移动的时候,遇到了移动事件mousemove过后就会发生click事件,但是我只是想移动button,只发生mousemove事件代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel
- 20.LMAX——DDD的极致性能架构
MQLYES
DDD学习笔记架构领域驱动设计
学习视频来源:DDD独家秘籍视频合集https://space.bilibili.com/24690212/channel/collectiondetail?sid=1940048&ctype=0文章目录历史起源架构目标架构要素时序对比传统时序事件溯源时序LMAX时序单线程非阻塞异步IO(reactor)多线程单线程事件溯源高可用方案代价总结优点缺点适用范围历史LMAX是由MartinFowler
- 【Java基础-46】泛型在Java集合中的应用:提升代码安全性与可读性
AllenBright
#Java基础java开发语言
在Java编程中,集合(Collection)是一个非常重要的数据结构,用于存储和操作一组对象。然而,在Java5之前,集合中的元素都是Object类型,这意味着我们可以将任何类型的对象放入集合中,但在取出时需要进行强制类型转换。这种方式不仅容易引发ClassCastException,还降低了代码的可读性和安全性。为了解决这个问题,Java5引入了泛型(Generics)机制。泛型允许我们在定义
- yolov8(8.2.10)+deepsort(demo)
fengsongdehappy
YOLO
只需要训练好yolov8的检测模型然后调用:results=model.track(frame,persist=True)#执行跟踪,persist=True表示持续跟踪。保持同一个人在多帧画面的id一就可以完整代码:importcv2importnumpyasnpfromultralyticsimportYOLOfromcollectionsimportdefaultdict#框的中心点的历史轨
- Java面试第一山!《集合》!
TFHoney
面试职场和发展
一、引言在Java编程的世界里,数据的存储和处理是非常重要的环节。Java集合框架就像是一个功能强大的工具箱,为我们提供了各种各样的数据结构来高效地存储和操作数据。今天,跟随小编一起来深入了解Java集合框架,这不仅有助于你在日常开发中更加得心应手,还能在面试中脱颖而出。二、Java集合框架概述Java集合框架主要分为两大体系:Collection和Map。Collection接口是存储单个元素的
- java-collection类
在下陈平安
javajava开发语言
前言:collection类下面有多个实现子类,每个实现子类都不一样,通过梳理每个实现子类,快速掌握便于日常工作。关系图:Collection└──List└──Set└──Map└──Queue└──ArrayList└──LinkedList└──HashSet└──TreeSet└──HashMap└──LinkedHashMap└──Queue└──ArrayDequeCollection
- 2020-10-09
weixin_45660257
笔记
java学习集合的目标1.会使用集合存储数据2.会遍历集合,把数据取出来3.掌握每种集合的特性集合框架的学习方法方式1.学习顶层:学习顶层接口,抽象类中共性的方法,所有的子类创建对象使用Collection接口定义的是所有的单列集合中共性的方法所有的单列集合都可以使用共性的方法没有带索引的方法继承:子类共性抽取形成父类(接口)List接口1.有序的集合(存储和取出元素顺序相同)2.允许存储重复的元
- ImageJ:科研与工业图像处理的利器
邱蒙励
ImageJ:科研与工业图像处理的利器imageJ下载链接项目地址:https://gitcode.com/Resource-Bundle-Collection/35869项目介绍ImageJ是一款功能强大的开源图像处理软件,广泛应用于科研和工业领域。无论您是从事生物医学研究、材料科学分析,还是工业质量控制,ImageJ都能为您提供高效、灵活的图像处理解决方案。本仓库提供了适用于不同操作系统和架构
- Java内存回收(GC)新贵的抉择,G1与ZGC!
颯沓如流星
javajvm架构
前言Java的垃圾回收(GarbageCollection,GC)是确保内存管理高效和稳定的关键机制。随着JDK的不断演进,各种垃圾回收器也应运而生,其中G1和ZGC作为两大明星产品,各自拥有独特的特性和适用场景。本文将详细解析G1和ZGC的特性和回收方式。关键概念解析Region在G1和ZGC中,Region是堆内存的一个逻辑分区。G1将堆划分为多个大小相同的Region,用于存放对象。而ZGC
- mondb入手
木zi_鸣
mongodb
windows 启动mongodb 编写bat文件,
mongod --dbpath D:\software\MongoDBDATA
mongod --help 查询各种配置
配置在mongob
打开批处理,即可启动,27017原生端口,shell操作监控端口 扩展28017,web端操作端口
启动配置文件配置,
数据更灵活 
- 大型高并发高负载网站的系统架构
bijian1013
高并发负载均衡
扩展Web应用程序
一.概念
简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种:
1.
- DISPLAY变量和xhost(原创)
czmmiao
display
DISPLAY
在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLAY=:0.0
- 获取B/S客户端IP
周凡杨
java编程jspWeb浏览器
最近想写个B/S架构的聊天系统,因为以前做过C/S架构的QQ聊天系统,所以对于Socket通信编程只是一个巩固。对于C/S架构的聊天系统,由于存在客户端Java应用,所以直接在代码中获取客户端的IP,应用的方法为:
String ip = InetAddress.getLocalHost().getHostAddress();
然而对于WEB
- 浅谈类和对象
朱辉辉33
编程
类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的,
占用存储空间。
类是由属性和方法构成的,基本格式是public class 类名{
//定义属性
private/public 数据类型 属性名;
//定义方法
publ
- android activity与viewpager+fragment的生命周期问题
肆无忌惮_
viewpager
有一个Activity里面是ViewPager,ViewPager里面放了两个Fragment。
第一次进入这个Activity。开启了服务,并在onResume方法中绑定服务后,对Service进行了一定的初始化,其中调用了Fragment中的一个属性。
super.onResume();
bindService(intent, conn, BIND_AUTO_CREATE);
- base64Encode对图片进行编码
843977358
base64图片encoder
/**
* 对图片进行base64encoder编码
*
* @author mrZhang
* @param path
* @return
*/
public static String encodeImage(String path) {
BASE64Encoder encoder = null;
byte[] b = null;
I
- Request Header简介
aigo
servlet
当一个客户端(通常是浏览器)向Web服务器发送一个请求是,它要发送一个请求的命令行,一般是GET或POST命令,当发送POST命令时,它还必须向服务器发送一个叫“Content-Length”的请求头(Request Header) 用以指明请求数据的长度,除了Content-Length之外,它还可以向服务器发送其它一些Headers,如:
- HttpClient4.3 创建SSL协议的HttpClient对象
alleni123
httpclient爬虫ssl
public class HttpClientUtils
{
public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){
SSLContext sslContext=null;
try
{
sslContext=new SSLContextBuilder().l
- java取反 -右移-左移-无符号右移的探讨
百合不是茶
位运算符 位移
取反:
在二进制中第一位,1表示符数,0表示正数
byte a = -1;
原码:10000001
反码:11111110
补码:11111111
//异或: 00000000
byte b = -2;
原码:10000010
反码:11111101
补码:11111110
//异或: 00000001
- java多线程join的作用与用法
bijian1013
java多线程
对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t
- Java发送http请求(get 与post方法请求)
bijian1013
javaspring
PostRequest.java
package com.bijian.study;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURL
- 【Struts2二】struts.xml中package下的action配置项默认值
bit1129
struts.xml
在第一部份,定义了struts.xml文件,如下所示:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts
- 【Kafka十三】Kafka Simple Consumer
bit1129
simple
代码中关于Host和Port是割裂开的,这会导致单机环境下的伪分布式Kafka集群环境下,这个例子没法运行。
实际情况是需要将host和port绑定到一起,
package kafka.examples.lowlevel;
import kafka.api.FetchRequest;
import kafka.api.FetchRequestBuilder;
impo
- nodejs学习api
ronin47
nodejs api
NodeJS基础 什么是NodeJS
JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。
每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了docum
- java-64.寻找第N个丑数
bylijinnan
java
public class UglyNumber {
/**
* 64.查找第N个丑数
具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url]
*
题目:我们把只包含因子
2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14
- 二维数组(矩阵)对角线输出
bylijinnan
二维数组
/**
二维数组 对角线输出 两个方向
例如对于数组:
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 },
slash方向输出:
1
5 2
9 6 3
13 10 7 4
14 11 8
15 12
16
backslash输出:
4
3
- [JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)
comsci
工作流
既然是做开源软件的,我们的宗旨就是给大家分享设计和代码,那么现在我就用很简单扼要的语言来透露这个跳跃模式的设计原理
大家如果用过JWFD的ARC-自动运行控制器,或者看过代码,应该知道在ARC算法模块中有一个函数叫做SAN(),这个函数就是ARC的核心控制器,要实现跳跃模式,在SAN函数中一定要对LN链表数据结构进行操作,首先写一段代码,把
- redis常见使用
cuityang
redis常见使用
redis 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets
引入jar包 jedis-2.1.0.jar (本文下方提供下载)
package redistest;
import redis.clients.jedis.Jedis;
public class Listtest
- 配置多个redis
dalan_123
redis
配置多个redis客户端
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&quo
- attrib命令
dcj3sjt126com
attr
attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.
只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.
存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.
- Yii使用公共函数
dcj3sjt126com
yii
在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下:
<?php /** * This is the shortcut to D
- linux 系统资源的查看(free、uname、uptime、netstat)
eksliang
netstatlinux unamelinux uptimelinux free
linux 系统资源的查看
转载请出自出处:http://eksliang.iteye.com/blog/2167081
http://eksliang.iteye.com 一、free查看内存的使用情况
语法如下:
free [-b][-k][-m][-g] [-t]
参数含义
-b:直接输入free时,显示的单位是kb我们可以使用b(bytes),m
- JAVA的位操作符
greemranqq
位运算JAVA位移<<>>>
最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。
1.按位操作符 :
按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。
与(&)运算:
1&1 = 1, 1&0 = 0, 0&0 &
- Web前段学习网站
ihuning
Web
Web前段学习网站
菜鸟学习:http://www.w3cschool.cc/
JQuery中文网:http://www.jquerycn.cn/
内存溢出:http://outofmemory.cn/#csdn.blog
http://www.icoolxue.com/
http://www.jikexue
- 强强联合:FluxBB 作者加盟 Flarum
justjavac
r
原文:FluxBB Joins Forces With Flarum作者:Toby Zerner译文:强强联合:FluxBB 作者加盟 Flarum译者:justjavac
FluxBB 是一个快速、轻量级论坛软件,它的开发者是一名德国的 PHP 天才 Franz Liedke。FluxBB 的下一个版本(2.0)将被完全重写,并已经开发了一段时间。FluxBB 看起来非常有前途的,
- java统计在线人数(session存储信息的)
macroli
javaWeb
这篇日志是我写的第三次了 前两次都发布失败!郁闷极了!
由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了!
我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。
1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。
public class Ses
- bootstrp carousel初体验 快速构建图片播放
qiaolevip
每天进步一点点学习永无止境bootstrap纵观千象
img{
border: 1px solid white;
box-shadow: 2px 2px 12px #333;
_width: expression(this.width > 600 ? "600px" : this.width + "px");
_height: expression(this.width &
- SparkSQL读取HBase数据,通过自定义外部数据源
superlxw1234
sparksparksqlsparksql读取hbasesparksql外部数据源
关键字:SparkSQL读取HBase、SparkSQL自定义外部数据源
前面文章介绍了SparSQL通过Hive操作HBase表。
SparkSQL从1.2开始支持自定义外部数据源(External DataSource),这样就可以通过API接口来实现自己的外部数据源。这里基于Spark1.4.0,简单介绍SparkSQL自定义外部数据源,访
- Spring Boot 1.3.0.M1发布
wiselyman
spring boot
Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下:
1.提供一个新的sprin