- 通过DBeaver连接Phoenix操作hbase
不想做咸鱼的王富贵
通过DBeaver连接Phoenix操作hbase前言本文介绍常用一种通用数据库工具Dbeaver,DBeaver可通过JDBC连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQLServer、Sybase、MSAccess、Teradata、Firebird、Derby等等。商业版本更是可以支持各种NoSQ
- spring boot jar 启动报错 Zip64 archives are not supported
赵丙双
javaspringbootjarzipzip64loader
springbootjar启动报错Zip64archivesarenotsupported原因、解决方案问题为什么springboot不支持zip64zip、zip64功能上的区别zip的文件格式spring-boot-loader是如何判断是否是zip64的?参考springboot版本是2.1.8.RELEASE,引入以下phoenix依赖之后启动报错。org.apache.phoenixph
- EMR组件部署指南
ivwdcwso
运维EMR大数据开源运维
EMR(ElasticMapReduce)是一个大数据处理和分析平台,包含了多个开源组件。本文将详细介绍如何部署EMR的主要组件,包括:JDK1.8ElasticsearchKafkaFlinkZookeeperHBaseHadoopPhoenixScalaSparkHive准备工作所有操作都在/data目录下进行。首先安装JDK1.8:yuminstalljava-1.8.0-openjdk部署
- 大数据技术之HBase 与 Hive 集成(7)
大数据深度洞察
Hbase大数据hbasehive
目录使用场景HBase与Hive集成使用1)案例一2)案例二使用场景如果大量的数据已经存放在HBase上面,并且需要对已经存在的数据进行数据分析处理,那么Phoenix并不适合做特别复杂的SQL处理。此时,可以使用Hive映射HBase的表格,之后通过编写HQL进行分析处理。HBase与Hive集成使用Hive安装https://blog.csdn.net/qq_45115959/article/
- 大数据技术之HBase整合 Phoenix(6)
大数据深度洞察
Hbase大数据hbase数据库
目录HBase整合PhoenixPhoenix简介Phoenix定义为什么使用PhoenixPhoenix快速入门安装1)官网地址2)Phoenix部署PhoenixShell操作Table表的映射数字类型说明PhoenixJDBC操作Phoenix二级索引二级索引配置文件全局索引(globalindex)包含索引(coveredindex)本地索引(localindex)HBase整合Phoen
- Phoenix自定义函数UDF异常解决方案
kikiki2
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- Phoenix的安装和使用
JasonLee实时计算
直接看我的公众号吧https://mp.weixin.qq.com/s/yNAmlFPnHMqCDIXhFVLhrw
- codeforces 1400分
沫刃起
codeforces算法c++数据结构
文章目录1.[B.PhoenixandBeauty](https://codeforces.com/problemset/problem/1348/B)2.[C.RotationMatching](https://codeforces.com/problemset/problem/1365/C)3.[C.ElementExtermination](https://codeforces.com/pr
- Phoenix自定义函数UDF异常解决方案
kikiki1
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- Python3环境下安装wxPython
怀沙
今天当我用pipinstallwxpython的时候提示找不到适合的版本查了一下原因发现我用Python3.6版本、老版本的wxPython是不支持Python3系列的;我们就需要用到Phoenix了。Phoenix是wxPython的一个全新的实现,它的目的是让wxPython“比以前更好、更强大、更快”下面我们来说说怎么样在Python3环境中安装wxPythonWxPython-logo.p
- 了解去中心化杠杆代币:以Phoenix Finance为例
chinadefi
去中心化区块链比特币
了解去中心化杠杆代币:以PhoenixFinance为例市场上有几种去中心化杠杆代币模型,包括SetProtocol、Tracer和PhoenixFinance。它们都对杠杆头寸的代币化应用了非常不同的方法。什么是杠杆代币?杠杆代币是一种衍生品,为持有者提供了对加密资产的稳定杠杆敞口。代币持有者不需要担心主动管理杠杆头寸、借款或清算。固定的杠杆或杠杆范围由再平衡机制维持。例如,PhoenixFin
- Phoenix Digital网络模块——将新的PLC连接到传统远程I/O
SoftingChina
Softing工业自动化新基建Phoenix网络模块PLCI/OSofting
假如您的工厂进行了大规模的改造以提高生产效率,这就意味着您需要用自动化设备来取代一些手动工艺。在该改造项目中,有一部分需要更新控制系统,但是对于远程I/O,它们是否也需要进行更换呢?如果新的控制系统无法与使用长达20年的远程I/O进行通信,那么它将无法融入老旧的网络系统中。在这种情形下,您可能会认为需要同时更换网络系统和远程I/O,并且在未来也应进行这样的操作。但幸运的是,现在您只需更新PLC,而
- Clickhouse到HBase(Phoenix)数据导入 DataX
布尔科技技术团队
hbaseoraclepostgresql数据仓库
DataXDataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。类型数据源Reader(读)Writer(写)文档RDBMS关系型数据库MySQL√√读、写Oracle√√读、写SQLServer√√读、写PostgreSQL√√读、写DRDS√√读、写通用RDB
- Jmeter 使用技巧
Anniejunyan
自动化测试工具
一、使用代理录制HTTP(web)请求(1)创建HTTP请求默认值1.打开jmeter2.jmeter中测试计划右键,新建线程组3.右键点击新添加的线程组----添加配置元件---添加HTTP请求默认值4.配置HTTP请求默认值--服务器名称或IP(ServerNameorIP)输入:roccoffline.easternphoenix.com--协议(Protocol)输入:http--端口(P
- Apache Phoenix 映射已存在 HBase 表,查询不到数据
Saxon_323e
问题描述按照网友提供的phoenix映射已存在的hbase表demo时,表映射正常,但是使用phoenix查询时,一直查询不到数据。举个栗子:1.hbaseshell插入数据create'test1','i'put'test1','1','i:name','zhangsan'put'test1','2','i:name','lisi'put'test1','1','i:age','15'put't
- 2022-08-25
东临沧海
凤凰社(theOrderofthePhoenix,中文繁体版译为凤凰会),是邓布利多所创办的专门反抗伏地魔的一个组织,由一些不太相成、看起来不太像英雄,默默无闻的人组成,但是大多数都是勇敢无畏的人。凤凰社成员由反抗伏地魔与食死徒的人组成。在1970年代,许多凤凰社成员牺牲了,在第二次魔法战役期间,又有许多成员牺牲。这都是一群坚韧不拔的人。在第二次战役期间总部设在格里莫广场12号,只有保密人能告诉别
- Phoenix自定义函数UDF异常解决方案
kikiki1
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- c++函数怎么返回多个值
Phoenix Studio
C++c++开发语言算法
文章目录代码地址:https://github.com/Phoenix8215/CplusplusMagicalCrafts使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。structResult{intvalue1;doublevalue2;charvalue3;};ResultmyFunction(){Resultr;r.value1=1;
- 转载
RECHER_ZHANG
varusername="bolu1234";var_blogger=username;varblog_address="http://blog.csdn.net/bolu1234";varstatic_host="http://csdnimg.cn/release/phoenix/";varcurrentUserName="RECHER_ZHANG";varfileName='51867099'
- 查看oracle服务器信息,查看本地oracle数据库的服务器名
方焉识
查看oracle服务器信息
查看本地oracle数据库的服务器名内容精选换一换该任务指导用户使用Loader将数据从关系型数据库导入到HBase。创建或获取该任务中创建Loader作业的业务用户和密码。确保用户已授权访问作业执行时操作的HBase表或phoenix表。获取关系型数据库使用的用户和密码。检查磁盘空间,确保没有出现告警且余量满足导入、导出数据的大小。如果设置的作业需要使用指定YARN队列功能,该用户需要本章节介绍
- win10找不到d3dx9_43.dll,无法正常启动0xc000007b
集智飞行
笔记系统无人机开发windows
Win10电脑,安装PhoenixRC时,安装好后点击运行,报错找不到d3dx9_43.dll按照网上的一些教程下载d3dx9_43.dll并放到C:\Windows\System32\下再运行regsvr32d3dx9_43.dll并没有作用。正确解决办法:1、腾讯电脑管家--工具箱--电脑诊所--软件硬件--丢失dll文件--丢失d3dx**.dll--立即修复。然后它会帮你安装好Direct
- 10.Flink实时项目之订单维度表关联
选手一号位
1.维度查询在上一篇中,我们已经把订单和订单明细表join完,本文将关联订单的其他维度数据,维度关联实际上就是在流中查询存储在hbase中的数据表。但是即使通过主键的方式查询,hbase速度的查询也是不及流之间的join。外部数据源的查询常常是流式计算的性能瓶颈,所以我们在查询hbase维度数据的基础上做一些优化及封装。phoenix查询封装phoenix作为hbase的一个上层sql封装,或者叫
- 插入类 dp 总结
best_brain
个人总结内容总结算法c++动态规划经验分享
插入类dp总结概念例题Permutation[ABC209F]Deforestation[CEOI2016]kangarooAntMan[JOIOpen2016]摩天大楼[ZJOI2012]波浪PhoenixandComputers[COCI2021-2022#2]Magneti概念\qquad什么是插入类dpdpdp呢?\qquad这类题目都有一个特性:1、题目往往会基于一个给定的排列做dpdp
- 一文读懂大数据工具Phoenix:让你的数据管理更高效!
知识分享小能手
学习心得体会大数据大数据数据库数据分析
介绍:Phoenix,最初由saleforce开发并开源,后成为Apache基金会的顶级项目。它是一个构建在HBase上的SQL层,可以使用标准的JDBCAPIs而不是HBase客户端APIs来创建表、插入数据和查询HBase中的数据。此外,Phoenix还完全使用Java编写,作为HBase内嵌的JDBC驱动,将SQL查询转换为一个或多个HBase扫描。Phoenix的主要特点包括:将SQL查询
- 通过DBeaver连接Phoenix操作hbase
风静花犹落
下载DBeaverhttps://dbeaver.io/download配置JDK(可选)编辑DBeaver安装目录下DBeaver.ini文件,在首行添加JDK安装路径-vmD:\ProgramFiles\jdk\bin连接HBase1.配置文件>新建>数据库连接>ApachePhoenix>填写相应的host,port,username,password信息2.驱动文件自动下载驱动编辑驱动设置
- spark+phoenix读取hbase
潮落拾贝
sparkhbase大数据
正常来说这个内容应该网上可参考的文章很多,但是我还是捣鼓了好久,现在记录下来,给自己个备忘录。phoenix是操作hbase的皮肤,他可以轻松的使用sql语句来操作hbase,比直接用hbase的原语操作要友好的多。spark直接操作hbase也是通过hbase的原语操作,操作起来比较繁琐,下面就是将spark和phoenix相结合的方法步骤。我用的是scala语言,首先pom.xml中添加依赖o
- 【远程访问】Hbase+Phoenix(伪分布式部署)
itachi-uchiha
数据库hbase分布式bigdatastandalone
目录Server端部署Hbase+Phoenix环境下载安装包安装JDK并配置环境变量配置ssh免密登录(可选)安装并启动zookeeper安装hbase安装phoenix启停hbase验证hbase是否启动Client端使用Phoenix进行远程访问Server端部署Hbase+Phoenix环境本环境为“伪分布式”部署,仅限于技术研究以及开发、测试环境,生产环境请按照最佳实践进行部署。下载安装
- 树莓派安装 Samba 和 Jupyter Notebook服务器(超级详细)
Nirvana Of Phoenixl
rasberryPi服务器jupyterlinux
树莓派安装Samba和JupyterNotebook服务器(良心、超详细)1安装samba2安装jupyternotebook **大功告成,动动小手,点个赞收藏一下支持我**Author:NirvanaOfPhoenixlProverbsforyou:Thereisnodoubtthatgoodthingswillalwayscome,andwhenitcomeslate,itcanbea
- 2.右值引用和移动语义
Phoenix Studio
C++开发语言c++github算法数据结构
文章目录右值引用和移动语义&&的特性右值引用优化性能,避免深拷贝移动(move)语义forward完美转发emplace_back减少内存拷贝和移动unorderedcontainer无序容器map和unordered_map的差别内部实现机理不同优缺点以及适用处小结优缺点以及适用处小结代码地址:https://github.com/Phoenix8215/CplusplusMagicalCraf
- C++11智能指针|巨巨巨详细
Phoenix Studio
C++c++开发语言
文章目录智能指针`shared_ptr``shared_ptr`的基本用法使用`shared_ptr`要注意的问题`unique_ptr`独占的智能指针weak_ptr弱引用的智能指针weak_ptr的基本用法weak_ptr返回this指针weak_ptr解决循环引用问题weak_ptr使用注意事项代码地址:https://github.com/Phoenix8215/CplusplusMagi
- 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