- 时空组专辑数据库文献详解 | 拟南芥叶片单细胞空间转录组图谱
尐尐呅
深圳华大生命科学研究院等在自主研发的时空组学技术Stereo-seq基础上,针对植物样本具有细胞壁这一特性,建立了一套适用于植物的、单细胞化的空间转录组技术scStereo-seq(single-cellSpaTialEnhancedREsolutionOmics-sequencing)。研究团队将其示范应用于模式植物拟南芥(Arabidopsis)的叶片研究中,对上、下表皮细胞、栅栏细胞、海绵细
- JedisUtils 对jedis的封装 and RedisCacheManager 管理多个连接池
潘多编程
Redisredis
RedisCacheManagerimportjava.util.concurrent.ConcurrentHashMap;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Service;importredis.clients.jedis.Jedis;impo
- conform
岁月静好_现象英语
1.认识这个词(基础篇)词:conform英英释义:tobehaveaccordingtotheusualstandardsofbehaviourwhichareexpectedbyagrouporsociety例句:YanNingdoesn’tconformtothestereotypeofascientist.2.体会这个词(进阶篇)“conform”是动词,常用来表示“与…一致”“遵从”,是
- 在 Spring MVC 中部署路由为history模式的vue项目
Faith-J
springmvcvue.js
为了处理Vue.js的History模式,需要在SpringMVC中配置一个控制器来转发所有的非API请求到index.html。这样,前端路由可以接管URL并正确显示Vue.js组件。创建一个控制器(例如ForwardingController)来处理所有的前端路由:importorg.springframework.stereotype.Controller;importorg.springf
- java递归的方式实现树形目录返回前端页面
renwei.song
javajava递归算法树结构
工作中遇到的一个需求,考虑这样的程序在网上会很多想从网上直接拿,结果找了半天没找到自己想要的,干脆就自己写了,实现逻辑如下:importcn.hutool.json.JSONUtil;importlombok.Data;importorg.springframework.stereotype.Component;importjava.io.File;importjava.util.ArrayLis
- 功放的音箱线连接方式
mosaic_born
硬件设备音视频
功率放大器一般最多有三种连接方式见图中最右侧拨码开关可知,包含立体声STEREO、PARALLEL、BRIDGE三种模式,这三种模式的区别stereo是立体声输入(就是一根线一个通道:左声道给A,右声道给B)。parallel是单声道输入(就是接一根线两个通道同时响)。bridge桥接只插一根信号线(只接A-B通道的正极功率增大一倍)。区别一:从立体声模式(stereo):将功率放大器左右声道的输
- OpenMVG(EXIF、畸变、仿射特征、特征匹配)
江河地笑
C++(图形图像)算法
本人之前也研究过OpenMVS但是对于OpenMVG只是原理层次的了解,因此乘着过年期间对这个库进行详细的学习。目录1OpenMVG编译与简单测试1.1sfm_data.json获取1.2计算特征2OpenMVG整个流程的运行测试3OpenMVG实战3.1SVG绘制3.2解析图片的EXIF信息3.3光学畸变3.4提取图像中的仿射特征点3.5对图像进行特征匹配(K-VLD)1OpenMVG编译与简单
- Pyramid Stereo Matching Network
Songger
https://s3.eu-central-1.amazonaws.com/avg-kitti/data_scene_flow.zipThisrepositorycontainsthecode(inPyTorch)for"PyramidStereoMatchingNetwork"paper(CVPR2018)byJia-RenChangandYong-ShengChen.Citation@inpr
- Depth Anything放入MVS中?
cashap27149
算法
这是DepthAnything的深度值depth,这个depth通过depth=depth_anything(image)求得。但想要把这个深度值depth嵌入到三维重建算法框架中,并不是一件容易得事情,拿OpenMVS举例,下图是OpenMVS输出深度图的函数。OpenMVS的深度值保存在depthMap中,我们来看看depthMap的具体结构,可以看到OpenMVS使用TImage模板类实例化
- 多视图特征学习 Multi-view Feature Learning既可以被看作是一种学习框架,也可以被看作是一种具体的学习算法!
小桥流水---人工智能
人工智能机器学习算法学习算法
Multi-viewFeatureLearning1.多视图特征学习Multi-viewFeatureLearning的基本介绍总结1.多视图特征学习Multi-viewFeatureLearning的基本介绍多视图特征学习是一种利用多视图数据集来进行联合学习的机器学习方法。多视图数据指的是对同一事物从多种不同的途径或角度进行描述所得到的数据集合。在实际应用中,多视图数据广泛存在,如网页数据既可以
- Open CASCADE学习|保存为STL文件
老歌老听老掉牙
OpenCASCADE学习c++OpenCASCADE
STL(Stereolithography)文件是一种广泛用于3D打印和计算机辅助设计(CAD)领域的文件格式。它描述了一个三维模型的表面而不包含颜色、材质或其他非几何信息。STL文件通常用于3D打印过程中,因为它们仅包含构建物体所需的位置信息。由于STL文件只包含表面信息,因此在导出过程中可能会丢失一些细节,特别是当模型具有非常小的特征或内部几何结构时。因此,在导出之前,最好确保你的模型是“水密
- 【CV论文精读】EarlyBird: Early-Fusion for Multi-View Tracking in the Bird’s Eye View
量子-Alex
CV论文阅读计算机视觉目标跟踪目标检测深度学习
【CV论文精读】EarlyBird:Early-FusionforMulti-ViewTrackingintheBird’sEyeView0.论文摘要多视图聚合有望克服多目标检测和跟踪中的遮挡和漏检挑战。多视图检测和3D对象检测中的最新方法通过将所有视图投影到地平面并在鸟瞰视图(BEV)中执行检测,实现了巨大的性能飞跃。在本文中,我们研究了BEV中的跟踪是否也能带来多目标多摄像机(MTMC)跟踪的
- PSM-Net根据Stereo图像生成depth图像
振华OPPO
ORB-SLAM2深度学习人工智能slampsm-net深度图像
一、新建文件夹在KITTI数据集下新建depth_0目录二、激活anaconda环境condaactivatept14py37三、修改submission.py文件3.1KITTI数据集路径parser.add_argument('--datapath',default='/home/njust/KITTI_DataSet/00/',help='selectmodel')3.2深度图像输出路径sa
- 计算机视觉中的Homography单应矩阵应用小结
CS_Zero
SLAM计算机视觉CV计算机视觉slam几何学
计算机视觉中的Homography(单应)矩阵应用小结Homography矩阵在StructurefromMotion(SfM)或三维重建、视觉SLAM的初始化过程有着重要应用,本文总结了单应矩阵出现场景与常见问题求解。文章目录计算机视觉中的Homography(单应)矩阵应用小结单应矩阵的推导单应矩阵的求解与分解位姿问题单应矩阵的推导一般地,单应模型出现的前提条件是空间点分布在同一个平面上,例外
- Java全栈课程之Spring详解——使用Java的方式配置spring
小孙同学1024
Java全栈开发javaspring开发语言
我们现在要完全不使用spring的xml配置了,全权交给Java来做!JavaConfig式spring的一个子项目,在spring4之后,它成为了一个核心功能。一、实体类:importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Component;//这里这个注解的
- Stereo vision with image-guided structured-light pattern matching
约德尔人winter
实验步骤:1数据获取:根据标准视差图获取3个数据集。数据集1和2是通过红外和可见光摄像头获取的。数据集3是通过普通摄像头获取的。(摄像头的帧率是60,但是我们认为两对图片是以30帧的速率同时获取的)视差范围是30-140。baseline是15.9cm。通过使用一个5*5的窗口来计算每个像素的成本。3后期处理:设置左右一致性检查的临界值为2。用中值滤波来进行颜色相似性。
- CVPR 2023: RIAV-MVS Recurrent-Indexing an Asymmetric Volume for Multi-View Stereo
结构化文摘
人工智能视觉模型AI3d
我们使用以下6个分类标准对本文的研究选题进行分析:1.匹配策略:局部vs.全局方法:局部方法:在图像的小块区域上进行操作,考虑它们的相似性和空间关系。例如PatchMatch[5]和SumofSquaredDifferences(SSD)。这些方法效率高,但可能难以处理较大的深度不连续性。全局方法:同时考虑整幅图像或场景,以获得全局一致的深度分配。例如Semi-GlobalMatching(SGB
- SpringCloud网关修改请求头使微服务获取客户端真实ip
爱的旋转体
1.网关添加过滤器:importjavax.servlet.http.HttpServletRequest;importorg.springframework.stereotype.Component;importcom.netflix.zuul.ZuulFilter;importcom.netflix.zuul.context.RequestContext;@Componentpubliccla
- ALOS 30mDEM数据显示
按图索迹
高程地形瓦片数据3DCesium前端GIS全球30米DEMNginx
ALOS30米DEM数据由高级陆地观测卫星ALOS(AdvancedLandObservingSatellite)上搭载的全色遥感立体测绘仪PRISM(PanchromaticRemote-sensingInstrumentforStereoMapping)获取;2015年5月,30米分辨率DSM产品AW3D(ALOSWorld3D)V1.0发布,截至当前,已发布到V4.0版本。数据产品全称为AL
- UK advertising watchdog to crack down on sexist stereotypes
英语自留地
UKadvertisingwatchdogtocrackdownonsexiststereotypes英国广告监管机构将打击带性别歧视的刻板印象Advertsshowingawomanstrugglingtoparkacaroramanrefusingtodohouseworkwhilehiswifecooksdinnerwillbebannedfromnextyearaspartofanindu
- (已解决)spingboot项目如何做QQ邮箱注册功能,如何在邮箱注册中进行随机数添加作为动态验证码,并满足分层解耦
BrianGriffin
java开发语言
前面我们已经完成了发送静态验证码,现在用随机数作为动态验证码。文章地址:spingboot后端发送QQ邮箱验证码使用注解@Component进行分层解耦加入ioc容器,方便调用。packagecom.example.tianyidemo.utils;importorg.springframework.stereotype.Component;importjava.util.Random;@Comp
- 异步处理(CompletableFutrue)应用笔记
KEEPMA
笔记java开发语言
线程的实现方式线程的实现方式importorg.springframework.stereotype.Component;importjava.util.concurrent.Callable;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.Executors;importjava.util.conc
- springboot 文件差异化对比以及可视化展示
缘不易
springboot后端java
maven依赖io.github.java-diff-utilsjava-diff-utils4.11创建Diff工具类packagecom.system.utlis.diff;importcom.github.difflib.UnifiedDiffUtils;importcom.github.difflib.patch.Patch;importorg.springframework.stereo
- SpringMVC的执行流程
学java的冲鸭
javamvc面试
一、SpringMVC执行流程图二、验证这个流程1.准备工作(1)准备thymeleaf来实现因为我们没有去使用前后端分离,所以使用thymeleaf来渲染视图。先自定义一个controller,里面的方法作用就是设置视图和一个数据模型。packagecom.csc.contorller;importorg.springframework.stereotype.Controller;importo
- 【PCL】(七) 点云的法线估计
二进制人工智能
PCL点云法线估计
文章目录(七)法线估计使用近邻点估计法线利用积分图像估计法线(七)法线估计点云样例数据:https://github.com/PointCloudLibrary/pcl/raw/master/test/table_scene_mug_stereo_textured.pcd使用近邻点估计法线以下代码实现使用近邻点估计点云所有点的法线。normal_estimation.cpp#include#inc
- 《RAFT-Stereo:Multilevel Recurrent Field Transforms for Stereo Matching》论文笔记
m_buddy
#DepthEstimation#OpticalFlowRAFT-Stereo
参考代码:RAFT-Stereo1.概述导读:RAFT算法是非常经典的立体匹配算法,在光流和立体匹配任务中有着广泛的运用。而这篇文章正是基于RAFT并将其运用到了立体匹配中,并且在如下的几个方面进行改进:1)相比原生的RAFT算法钟重点关注X轴(W方向)的视差信息,前提是输入的图像对需要事先经过极线校准;2)在GPU的update阶段使用stride为[8,16,32][8,16,32][8,16
- 《PackNet:3D Packing for Self-Supervised Monocular Depth Estimation》论文笔记
m_buddy
#DepthEstimationPackNet
参考代码:packnet-sfm1.概述导读:这篇文章提出了一种自监督的深度估计方法,其使用视频序列与运动信息作为输入,用网络去估计深度信息/相机位姿,并用最小重构误差去约束整个训练的过程从而实现自监督。文章的创新点主要体现为:使用3D卷机作为深度编解码网络,在相机位姿的6d信息基础上对平移分量进行约束,提出了一个新的数据集DDAD(DenseDepthforAutomatedDriving)。单
- Spring Boot项目添加定时器timer
柒月姐姐a
SpringBoot项目整合定时器其实很简单,写一个简易版。首先创建一个timer类。packagecom.cloudjoyclub.sharespace.timer;importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.stereotype.Component;@Componentp
- Anytime Stereo Image Depth Estimation on Mobile Devices 文章及代码调试
Rayne_tab
AnyNet是YangWang等人2016年提出的一种双目深度计算网络。最近做项目有用到该网络,其中碰到一些小坑为大家展示一下。第一部分是论文中重要地方的翻译和讲解;第二部分是源码修改及调试。原文地址:https://arxiv.org/abs/1810.11408源码地址:https://github.com/mileyan/AnyNet翻译摘要机器人立体深度估计的许多应用都需要实时生成精确的视
- 论文阅读“A probabilistic framework for multi-view feature learning with many-to-many associations via...
掉了西红柿皮_Kee
OkunoA,HadaT,ShimodairaH.Aprobabilisticframeworkformulti-viewfeaturelearningwithmany-to-manyassociationsvianeuralnetworks[C]//InternationalConferenceonMachineLearning.PMLR,2018:3888-3897.预备知识这部分主要是为了介
- 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