- clickhouse对比两台机器数据
微亮之海
clickhouse
selectconcat(database,'.',name),total_rowsfromsystem.tableswhereengine='MergeTree'anddatabase!='system'andtotal_rows!=0orderbydatabase,name;两台机器分别跑,导出数据后对比
- ClickHouse与其他数据库的对比
九州Pro
ClickHouse数据库clickhouse数据仓库大数据sql
目录1与传统关系型数据库的对比1.1性能差异1.2数据模型差异1.3适用场景差异2与其他列式存储数据库的对比2.1ApacheCassandra2.2HBase3与分布式数据库的对比3.1GoogleBigQuery3.2AmazonRedshift3.3Snowflake4ClickHouse的缺点5ClickHouse的其他优点1与传统关系型数据库的对比1.1性能差异ClickHouse是一种
- Hbase、hive以及ClickHouse的介绍和区别?
damokelisijian866
hbasehiveclickhouse
一、Hbase介绍:HBase是一个分布式的、面向列的开源数据库,由ApacheSoftwareFoundation开发,是Hadoop生态系统中的一个重要组件。HBase的设计灵感来源于Google的Bigtable论文,它通过提供类似于Bigtable的能力,在Hadoop之上构建了一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase主要用于存储大量结构化数据,并支持随机读写访问,
- ClickHouse 分布式部署、分布式表创建及数据迁移指南
努力做一名技术
clickhouse分布式
文章目录部署ClickHouse集群1.1环境准备1.2安装ClickHouse1.3配置集群创建分布式表2.1创建本地表2.2创建分布式表2.3删除分布式表测试分布式表3.1插入测试数据。配置和管理4.1配置监控4.2数据备份数据迁移5.1导出5.2导入部署ClickHouse集群QuantumInsights的部署将基于一个高可用的分布式ClickHouse集群,以实现对大规模数据的高效处理和
- el-table行编辑
dy1717
elementuivue.jselementuijavascript
需求:单点行编辑并且请求接口更新数据,表格中某几个字段是下拉框取值的,剩下的是文本域;展示的时候需要区分下拉框编码还是中文故障模式这个展示的是fault_mode编码,但要显示的文字fault_mode_chn这点需要注意|-->tabClick(row,column,cell,event){if(this.viewColumns.some((ele)=>ele.label==column.lab
- Vue获取当前元素
ACGuan
Vue
点击methods:{clickfun(e){//e.target是你当前点击的元素//e.currentTarget是你绑定事件的元素#获得点击元素的前一个元素e.currentTarget.previousElementSibling.innerHTML#获得点击元素的第一个子元素e.currentTarget.firstElementChild#获得点击元素的下一个元素e.currentTa
- 等待进程框示例
拐几个弯
Devexpressc#开发语言
privatevoidsimpleButton2_Click(objectsender,EventArgse){simpleButton2.Enabled=false;DevExpress.XtraSplashScreen.SplashFormPropertiesinfo=newDevExpress.XtraSplashScreen.SplashFormProperties();info.Clos
- 在Element UI的<el-table>组件中,点击子元素不触发父级事件
HWL5679
vue.jsjavascriptecmascript
在ElementUI的组件中,@row-click事件是绑定在整行上的,这意味着如果点击了表格的任意位置(除非有特定的子元素阻止了事件冒泡),都会触发这个事件。如果你想要在某些子元素上点击时不触发@row-click事件,你需要在这些子元素上阻止事件冒泡。你可以通过在子元素上添加点击事件并调用event.stopPropagation()方法来实现这一点。event.stopPropagation
- Element UI的<el-table>组件中,在表格中添加“删除”和“修改”按钮
HWL5679
uivue.jselementui
删除修改import{ref}from'vue';exportdefault{setup(){consttableData=ref([//...表格数据]);//处理行点击事件的方法(如果需要的话)consthandleRowClick=(row,column,event)=>{//...行点击的逻辑};//处理删除按钮点击事件的方法constdel=(id)=>{console.log('要删除
- vue中的鼠标事件
HWL5679
vue.jsjavascript
在Vue中,你可以使用标准的鼠标事件来监听和处理用户的鼠标交互。Vue并没有为这些事件提供特定的语法,而是使用了原生的DOM事件。以下是一些常见的鼠标事件以及如何在Vue组件中使用它们的示例:常见鼠标事件click:当用户点击元素时触发。mouseenter:当鼠标指针进入元素内部时触发。(常用)mouseleave:当鼠标指针离开元素时触发。(常用)mousedown:当用户按下鼠标按钮时触发。
- 在Vue中使用Element UI的表格组件时,通过点击表格的某一行来获取该行数据的id
HWL5679
vue.js前端javascript
在Vue中使用ElementUI的表格组件时,如果想通过点击表格的某一行来获取该行数据的id,可以使用@row-click事件监听器。这个事件监听器会在你点击表格的某一行时被触发,并且会提供一个参数row,这个row就是你点击的那一行的数据对象。首先,确保你的组件上添加了@row-click事件监听器,并绑定一个方法来处理这个事件。然后,在这个方法中,你可以通过row参数访问到当前行的所有数据,包
- ClickHouse实战处理(一):MergeTree系列引擎
sheep8521
clickhouse数据库大数据
MergeTree作为家族系列最基础的表引擎,主要有以下特点:存储的数据按照主键排序:创建稀疏索引加快数据查询速度。支持数据分区,可以通过PARTITIONBY语句指定分区字段。支持数据副本。支持数据采样。总之适用于高负载任务的最通用和功能最强大的表引擎。可以快速插入数据并进行后续的后台数据处理。支持数据复制(使用Replicated*的引擎版本)、分区和其他引擎不支持的特性MergeTree系列
- JS基础-ClassList -移动端插件的引入-touch事件-sessionStorage 和 localStorage
垦利不
javascript开发语言ecmascript
目录1.classList属性添加类删除类切换类检查类是否存在替换类移动端touch事件2.消除点击延迟Fastclick插件的引入引入FastClick初始化3.Swiper插件的引入和使用通过CDN引入通过npm安装(vue中建议)使用SwiperHTML结构初始化Swiper4.zyMedia插件简介4.1下载与引入4.2使用4.3js初始化4.4参数说明5.bootstrap的安装和使用5
- ClickHouse 二进制特征值怎么转化为字符串
树下水月
clickhouse
要将二进制特征值转化为字符串,可以使用以下方法:1.使用base64编码base64是一种将二进制数据编码为ASCII字符串的方法。在ClickHouse中,可以使用函数base64Encode()来将二进制特征值转化为base64编码的字符串。例如:SELECTbase64Encode(feature)FROMmy_table;2.使用hex编码hex是一种将二进制数据转化为十六进制字符串的方法
- 【Qt笔记】QListWidget控件详解
冷眼看人间恩怨
Qtqt笔记开发语言QListWidget
目录引言一、基本概念和特性二、基本用法2.1创建和初始化2.2添加和删除项2.3选择和遍历项三、信号与槽3.1itemClicked3.2itemDoubleClicked3.3itemSelectionChanged四、自定义项五、排序和查找六、代码示例6.1头文件6.2源文件6.3主函数文件6.4实现效果6.5代码解析结语引言QListWidget是Qt框架中一个非常实用的控件,它提供了一个基
- vue-seamless-scroll 点击click失效
int_Q7
vuevue.jsjavascript前端
安装vue-seamless-scrollnpminstallvue-seamless-scroll--save引入1.main.js中全局引入importscrollfrom'vue-seamless-scroll'Vue.use(scroll)2.局部引入importvueSeamlessfrom'vue-seamless-scroll'exportdefault{components:{vu
- Python写UI自动化--playwright(点击操作)
电商人学python
playwright开发语言pythonuipytest
本篇介绍playwright点击操作,click()方法的常用参数目录0.selector(必需)1.modifiers(可选)2.position(可选)3.button(可选)4.click_count(可选)5.delay6.timeout(可选)7.force=True(可选)8.trial=True(可选)9.no_wait_after(可选)注意事项0.selector(必需)类型:s
- 【jQuery】前端八股文面试题
菜鸟una
前端八股文面试题前端jqueryjavascript
jQuery这个问的没有那么多,暂时我被问到的就这几个。大家可以直接订阅专栏。文章目录jQuery1.jQuery常见的方法有哪几个?2.在jQuery中,常见使用委托的事件有哪些?1)点击事件(click)2)鼠标悬停事件(mouseenter和mouseleave)3)表单提交事件(submit)4)输入框变化事件(change)3.在jQuery中,常见的鼠标事件方法有哪些?1)click(
- 十七、新增、修改--功能优化总结
荒--
RBAC权限管理-SSM框架
十四章介绍了新增功能,该功能可以进行优化,本节以角色(t_role)进行讲解,主要是在新增的时候先校验该角色的名称(name)是否已经存在JS代码如下://新增角色$("#insertBtn").click(function(){varname=$("#name").val().trim();//非空校验if(name==""){layer.msg("角色名称不能为空,请输入",{time:200
- 设置contenteditable的非表单元素限制字数时设置光标位置
Jerry379
html:请输入选项内容js:$("#optionA").on({input:function(e){limited(e.target.id,30);},click:function(e){write($("#"+e.target.id));}});//字符串截取functionlimited(obj,num){varcommentLength=$('#'+obj).text().length;i
- SecurityHeaders:为.Net网站添加安全标头,让Web更加安全、避免攻击!
编程乐趣
.net安全前端
网站的安全对于任何一家公司都是非常重要的。为了保证Web安全,其中Http安全标头就是非常重要一个的措施。设定正确的安全头可以增强网站的安全性,因为它们可以帮助防止各种网络攻击,如跨站脚本(XSS)、点击劫持(Clickjacking)和内容类型嗅探(ContentTypeSniffing)等。下面推荐一个开源项目,可以让我们轻松地添加安全相关的HTTP头到网站中。01项目简介NetEscapad
- ClickHouse安装与使用指南
富艾霏
ClickHouse安装与使用指南clickhouseNodeJSclientforClickHouse项目地址:https://gitcode.com/gh_mirrors/clic/clickhouse项目介绍ClickHouse是由Yandex开发的一个用于在线分析处理(OLAP)的列式数据库管理系统(DBMS)。此开源项目位于https://github.com/TimonKK/click
- 【开端】clickhouse入门使用
奋力向前123
数据库clickhouse
一、绪论这两天使用clickhouse进行数据分析,在使用上和mysql等关系型数据库还是有区别的,在SQL语法上也有差别,所以这里总结一下使用。二、clickhouse入门使用ClickHouse介绍ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),它使用C++语言编写,主要面向在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。Cli
- Python Tips and Tricks
net sec
1.InstallPythonintoWindows1.1DownloadLatestPython2filefromhttps://www.python.org/downloads/windows/LatestPython3Release–Python3.7.0LatestPython2Release–Python2.7.151.2DoubleClickdownloadpython-2.7.15.
- 如何用原生 JS给一个按钮绑定两个 onclick 事件?
唐家小妹
javascript前端
要给一个按钮绑定两个onclick事件,可以使用addEventListener方法来实现。具体步骤如下:首先,获取要绑定事件的按钮元素,可以通过document.getElementById()或其他方式获取到按钮元素。然后,使用addEventListener方法为按钮元素添加两个不同的click事件监听器,分别执行不同的操作。下面是一个示例代码: //获取按钮元素varbutton=docu
- html5图片自动翻转,canvas实现图片镜像翻转的2种方式
weixin_39841136
html5图片自动翻转
1.通过canvas自带的画布方法进行翻转varimg=newImage();//这个就是img标签的dom对象img.src='./sy.png';img.onload=function(){//图片加载完成后,执行此方法ctx.drawImage(img,posx,posy,210,80);};play.addEventListener('click',function(){ctx.clear
- 创意读绘本系列1: 咔嗒,咔嗒,哞 会打字的奶牛
斑马妈妈讲绘本
Click,Clack,MooCowsThatType咔嗒,咔嗒,哞会打字的奶牛作者:DoreenCronin绘者:BetsyLewin咔嗒,咔嗒,哞会打字的奶牛咔嗒,咔嗒,哞会打字的奶牛01绘本内容介绍FarmerBrown有个很烦的问题,他的牛喜欢打字,仓库里整天传出阵阵的打字声。有一天FarmerBrown在仓库的门上看见一张短笺,牛群们表示仓库太冷了需要购买电毯来改善环境。FarmerBr
- 五、Selenium操作指南(二)
for_everyoung01
测试开发selenium测试工具
文章目录四、获取页面元素属性(一)get_attribute获取属性(二)获取文本(三)获取其他属性五、页面交互操作(一)输入文本send_keys()(二)点击click()(三)清除文本clear()(四)回车确认submit()(五)单选(六)多选(七)下拉框六、多窗口切换(一)Frame切换(二)选项卡切换四、获取页面元素属性既然我们有很多方式来定位页面的元素,那么接下来就可以考虑获取以下
- elementUI表格复选框只能选中一个
果子切克now
vue.jsjavascript前端
data(){return(){bill_id:""}},methods:{//方法一//表格某一行的单击事件rowClick(row,column){constselectData=this.selectListthis.$refs.detailedSelection.clearSelection()if(selectData.length===1){selectData.forEach(ite
- 代正通_iPhone忘记密码怎么办?苹果手机忘记密码怎么办?iPhone已停用怎么办?
行走的病毒_
笔记iphoneios
IPhone已停用,链接ITunes这里有两种方式[通过icloud|通过ITunes]!!如果你密码忘记了,但是能用指纹或者面容,尽量不要息屏,有可能会让你密码解锁。!!尽快用你的手机链接ITunes备份你的数据,清除密码之后再恢复即可。!!如果已经已停用就保证不了你的数据了。!!!iphone&&"PleaseclickArticle3"【如果不是你的手机请点第三条】一、icloud抹除数据二
- 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