- CMake构建学习笔记8-OpenSceneGraph库的构建
charlee44
CMakeC++学习CMakeC++构建OpenSceneGraph
1.概论在连续构建了zlib、libpng、libjpeg、libtiff、giflib以及freetype这几个库之后,接下来我们就要来一个大的,构建OpenSceneGraph这样大型库。OpenSceneGraph(简称OSG)是一个高性能、跨平台的三维图形应用程序框架,广泛应用于科学可视化、模拟仿真、游戏开发等领域。理论上来说,上述几个库不是OSG的必须依赖库,但是将它们作为依赖库构建,O
- CMake构建学习笔记6-giflib库的构建
charlee44
CMakeC++学习CMakec++giflibc
前面构建的zlib、libpng、libjpeg和libtiff都提供了CMakeList.txt文件,因此都可以通过CMake进行构建。不过有的依赖库是并没有CMakeList.txt文件,也就是官方没有提供CMake的构建方式,例如本篇要说的GIFLIB。GIFLIB是一个开源的C库,用于处理GIF(图形交换格式)图像文件。GIFLIB是个典型的基于Linux环境的开源库,使用Makefile
- Ubuntu20.04 编译osg, osgearth
黑不溜秋的
三维引擎专栏c++
一:编译OSG#sudovim/etc/apt/sources.list打开sources.list#将sources.list里面的deb-src取消注释#然后执行下面命令sudoapt-getbuild-depopenscenegraphsudoapt-getinstalllibgles2-mesa-devlibfreetype6-devsudoapt-getinstalllibjpeg-de
- ubuntu22.04编译安装mjpg-streamer
bhlu
Qtqtlinux
安装依赖:sudoapt-getinstallcmakelibjpeg8-dev下载程序代码:gitclonehttps://gitcode.com/jacksonliam/mjpg-streamer.git进入文件夹:cdmjpg-streamer/mjpg-streamer-experimental先清除:makecleanall编译:make安装:sudomakeinstall运行:shst
- docker- php7.4
暗夜潜行
php开发语言
安装gd拓展an'zhuanga在Dockerfile里面安装php7.4的GD库-知乎aptupdateaptinstall-ylibwebp-devlibjpeg-devlibpng-devlibfreetype6-devdocker-php-sourceextractdocker-php-ext-configuregd\--with-jpeg=/usr/include\--with-free
- 提取图片RGB三通道数据+用RGB恢复原始图片
urnot二毛
qtc++python
提取图片的RGB三通道数据+用RGB恢复原始图片提取图片的RGB三通道数据用RGB恢复原始图片功能实现:提取出一张图片的R、G、B三个通道的值并且将其分别转换为十进制数据存储到R.txt、G.txt、B.txt文档中再将R.txt、G.txt、B.txt里的十进制数据恢复成图片形式,用以验证代码已开源到github上提取图片的RGB三通道数据 使用的是libjpeg库,关于如何在QT中配置libj
- php recode,编译安装PHP7
阿拉丁的勺子
phprecode
1)前期准备#按需求自行删减ccgcc-c++makecmakeautomakeautoconfgdfilebisonpatchmlocateflexdiffutilszlibzlib-develpcrepcre-devellibjpeglibjpeg-devellibpnglibpng-devellibxml2libxml2-develfreetypefreetype-develglibcgli
- 【QT+QGIS跨平台编译】之七:【libjpeg+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
翰墨之道
Qt+QGIS跨平台编译QGIS编译QGIS跨平台编译libjpeg跨平台编译libjpeg编译libjpeg+qtlibjpegpro
文章目录一、libjpeg介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libjpeg介绍libjpeg是一个广泛使用的jpeg图像压缩和解压的函数库,采用C语言开发。2013年1月,IndependentJPEGGroup发布了版本9,对新引入的无损编码模式进行了改进。2022年1月,发布了版本9e,是唯一真正的源参考JPEG编解码器。【libjpeg跨平台编译】:Windows环境
- 编译安装php 5.5 缺少依赖包 及解决方案
weixin_30659829
php运维数据库
必要时可以用YUM选择安装以下相关软件包:#yuminstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesn
- 【Jpeg】不同平台如何编译 jpeg-turbo 库文件
unonoi
JpegCMakecmake交叉编译
本文介绍不同平台下如何编译jpeg-turbo库文件。Mac/Linux平台Mac/Linux平台编译jpeg-turbo库文件(libturbojpeg)的流程如下:下载jpeg-turbo源码源码github地址:libjpeg-turbo下载之后将分支切换到2.0.5版本(此处以2.0.5版本举例,其他版本需切换到对应分支):gitclonehttps://github.com/libjpe
- CentOS7源码安装php7.3
我_bacd
一、前期准备1、更新yumyum-yupdate2、安装依赖yum-yinstalllibxml2libxml2-developensslopenssl-develbzip2bzip2-devellibcurllibcurl-devellibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-develgmpgmp-devellibmcryptl
- Android 图片压缩
追逐未来2016
前言上次面试被问到图片压缩方法,没有回答上来,只依稀记得有质量压缩、尺寸压缩,却说不出个所以然来。所以今天研究了一下,Android的图片压缩方式,经过百度和查看谷歌文档,暂时知道了一共有质量压缩、尺寸压缩(或者说裁剪)、采样率压缩、设置图片格式、通过JIN调用libjpeg库压缩1.质量压缩保持像素的前提下改变图片的位深及透明度(即:通过算法抹掉(同化)图片中的一些某点附近相近的像素)达到降低质
- unity解码4k图片过慢,使用turbojpeg加速,使用opencl加速,使用libjpeg,使用v4l2
panda0熊猫
踩坑unityc#c语言v4l2jpeg
后记:果然贻笑大方,libjpeg也不记得哪个文章说最新版是1996年的,还煞有介事的给了一个1996年以后再没更新过的所谓官网,实际上libjpeg一直有维护和更新,支持到的最新版vs比我用的还要新,找到正确的地址轻轻松松就编译通过了。把我整篇文章都推翻了,下面不用看了。libjpeg-turbo也不要去自己编译,下载现成的好像性能更好。libjpeg下载地址:DirectoryListingo
- Docker 安装 PHP7.4 GD扩展
m0_67392931
javajava后端
1、进入php-fpm容器dockerexec-it容器ID/bin/bash2、编译phpGD库扩展#更新软件源apt-getupdate#安装相关库apt-getinstall-ylibwebp-devlibjpeg-devlibpng-devlibfreetype6-dev#解压源码docker-php-sourceextract#gd源码文件夹cd/usr/src/php/ext/gddo
- Centos 搭建服务器环境配置LNMP(linux+nginx+php+mysql)
枫信华
整理于网络系统版本:centos7yuminstall-ynginxphpphp-cliphp-commonphp-pdorrdtool-phpgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-devel
- 安装PHP7.4.33以及
lxw1844912514
php
系统:CentOSLinuxrelease7.9.2009(Core),内核:3.10.0-1127.el7.x86_64安装过程1.通过源码包编译安装,先下载php-7.4.332.通过yum提前处理各项依赖:[root@2207013~]#yuminstall-ygccgcc-c++epel-releasemakezlib-devellibxml2-devellibjpeg-devellibp
- 树莓派调用usb摄像头(三)
牙刷与鞋垫
树莓派智能小车100个实战项目linux运维服务器
查看是否检索到摄像头因为我的摄像头是usb的所以使用一下命令查看摄像头安装fswebcamsudoapt-getinstallfswebcam输入以下命令,开启摄像头fswebcam--no-banner-r640x480image3.jpgsudoapt-getinstallcmakelibjpeg8-dev提示:Package'libjpeg8-dev'hasnoinstallationcan
- 安装pillow可能遇到的问题
终将老去的穷苦程序员
pillow
安装命令pipinstallPillow安装Pillow这个Python图像处理库时可能会遇到多种问题。以下一些常见的安装问题及其解决方法:缺少依赖项:Pillow安装可能需要一些基础库,如libjpeg和zlib。如果在安装时提示缺少这些库,你需要先安装它们。在Linux上,你可以使用包管理器(如apt-get或yum)安装这些依赖。在Windows上,通常当你通过pip安装Pillow时,它会
- 安装pillow遇到的问题详细讲解
不爱敲代码吖
PythonPillowpillowpython
Pillow是一个Python的图像处理库。在安装Pillow时,可能会遇到以下问题:1、缺少依赖项:安装Pillow之前,需要先安装一些依赖项,如libjpeg、zlib、freetype等。如果你的系统上缺少这些依赖项,那么在安装Pillow时会出现错误。你可以根据自己的操作系统和安装方式来安装这些依赖项。2、缺少VisualStudioBuildTools:如果你使用的是Windows操作系
- windows7 64位机上,libjpeg-turbo的安装和使用
fengbingchun
ImageProcessinglibjpeg-turbo
libjpeg-turbo是对libjpeg的扩展,支持SIMD指令,如X86架构的MMX、SSE、SSE2、3DNOW,ARM架构的NEON,在对jpeg进行编码和解码的过程中能提高速度。MMX:多媒体扩展的缩写,第六代CPU芯片重要特点,57条指令。SSE2:SIMD流技术扩展2,144个新增指令,被MMX优化过的程序很容易被SSE2进行更深层次的优化。NEON:可加速多媒体和信号处理算法,它
- osg第三方插件的编译方法(以jpeg插件来讲解)
荆楚闲人
#osg基础技术点jpeg
osg以插件方式来扩展、加载第三方库,如果这些库在程序运行时找不到,就会报类似如下的错误:(这里以jpeg为例):下面以jpeg为例,讲解jpeg插件的编译方法,其它库和这步骤类似。先从GitHub-libjpeg-turbo/libjpeg-turbo:Mainlibjpeg-turborepository下载jpeg源码,利用CMake工具编译出jpeg的lib和dll,如下:2:打开cmak
- 傻瓜式教学Docker 使用docker compose部署 php nginx mysql
Caspian Wren
dockerphpnginx
首先你可以准备这个三个服务,也可以在dockercompose文件中直接拉去指定镜像,这里演示的是镜像服务已经在本地安装好了,提供如下:PHP#设置基础镜像FROMphp:8.2-fpm#installdependenciesRUNapt-getupdate&&apt-getinstall-y\vim\libzip-dev\libpng-dev\libjpeg-dev\iputils-ping\l
- 编译安装PHP5.6
彭世瑜
PHPphp开发语言
PHP:安装PHP5.6yuminstalllibxml2libxml2-developensslopenssl-develbzip2bzip2-devellibcurllibcurl-devellibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-develgmpgmp-devellibmcryptlibmcrypt-develreadli
- linux c编程之libjpeg的使用和rgb图片格式查看
今天早晚运动
#c语言linux算法arm64ubuntu
#include#include#include#include#include"jpeglib.h"#defineDEBUG_RGB_OUT(1)#defineFILE_NAME"./test.jpg"#defineRGB_FILE"./test.rgb"staticunsignedchar*jpeg_dec(char*filename,int*width,int*height){structj
- CentOS下BCH节点服务器搭建
xirigh
区块链BCHCentOS7Linux搭建节点
CentOS下BCH节点服务器搭建安装必要的库yum-yinstallwgetvimgoaccessgccgcc-c++autoconfautomakemakepcrepcre-develzlibzlib-devellibxml2libxml2-developensslopenssl-develgdlibjpeglibjpeg-devellibpnglibpng-devellibaiogo下载编译
- Redis Cluster 部署
awker
1、安装redis#yuminstallgccgcc-c++makegd-devellibjpeg-devellibpng-devellibxml2-develbzip2-devellibcurl-develpython-develncurses-develglib2glib2-developenssl-develglibc-develglibc-devel.i686vimscreengitntp
- 恢复Django 项目
芝麻馅汤圆儿
django数据库sqlite
随笔记录目录1.重建MysqlDB2.启动Django项目2.1确保你的系统上已安装pip工具。你可以使用以下命令来检查pip是否已安装2.2安装Packages2.2.1安装Django2.2.2安装pymysql2.2.3安装kafka2.2.4安装requests2.2.5安装simplepro2.2.6安装libjpeg-devel2.2.7重新安装simplepro2.2.8安装fake
- opencv 安装
FMsunyh
opencv人工智能计算机视觉
opencv安装工具sudoapt-getinstallcmake依赖包sudoapt-getinstallbuild-essentiallibgtk2.0-devlibavcodec-devlibavformat-devlibjpeg.devlibtiff4.devlibswscale-devlibjasper-devsudomakesudomakeinstall配置环境sudo/bin/bas
- Emacs利器0x01 Ubuntu 18.04安装 Emacs25.3
夏大王2019
古语有说:工欲善其事,必先利其器;Emacs无疑是编程的神器。通过这一系列的小文章,让我们一起记录熟练使用和打造这一神兵利器。安装依赖的库sudoapt-getinstalllibgtk2.0-dev;图形库sudoapt-getinstalllibxpm-devsudoapt-getinstalllibjpeg62-devsudoapt-getinstalllibgif-devsudoapt-g
- cygwin安装nginx php mysql redis mysql mongodb memcache postgresql
tboqi1
nginxphpmysqlcygwin
cd..wgethttp://cn2.php.net/get/php-5.3.17.tar.gz/from/this/mirrorphp-5.3.17.tar.gzyuminstallgdlibpngcurlfreetypezliblibjpegwgetftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
- 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