- android技巧汇总(menu,activity,AlertDialog...)
A一剑飞鸿
Android
这些技巧都适用androidsdk1.01.在测试时,如何实现一个提示可以使用Toast.makeText(this,"这是一个提示",Toast.LENGTH_SHORT).show();//从资源文件string.xml里面取提示信息Toast.makeText(this,getString(R.string.welcome),Toast.LENGTH_SHORT).show();这个提示会几
- 【Android技巧】--防崩溃处理
飘散风中
ANDROID
简单介绍:Android开发过程中,因为各种原因导致app崩溃的现象层出不穷,异常奔溃带来的用户体验及其差劲,尤其当一个小小的功能页面的问题导致app整体奔溃带来的操作感受极差,防止app奔溃,虽然不能从根本解决用户体验的基本问题,但可以在此基础上处理,并带来更好地错误交互处理方法。程序中,可以捕捉到的异常,通常使用try...catch..finally来解决,但还存在一些我们没有捕捉到的异常,
- android技巧:快速重建system.img
linux_lyb
android
修改android的系统模块后,需要重新生成system.img,以前我用makesystemimage,但这个过程太慢了,很烦人。于是通过make输出的信息,找到一个比较快的方法,只编译模块和生成system.img,省去其它过程,重新生成system.img快了不少。以修改services模块为例,命令如下:cdframeworks/base/servicesmmcd-out/host/lin
- Android技巧之shape实现控件圆角,背景,边框等属性
Joker_Ya
Android
转载请标明出处:http://blog.csdn.net/joker_ya/article/details/38638481好咧,今天带给大家的是一个UI上的小技巧。就是使用shape来实现输入框、按钮等控件的圆角。该方法对于UI的设计来说非常实用。还是老规矩,上图:接下来就是shape的讲解:好了接下来就看例子了,新建一个项目ShapeDemo。目录如下:shape_rectangle_butt
- Android技巧小结之Service调用
大禾
Android应用
http://blog.csdn.net/olanmomo/article/details/39830833Service同Activity一样,是Android开发中的四大组件之一。不同于Activity的是,Service并没有好看的用户界面。Service就像一个劳模,默默无闻地完成一些耗时较长的工作。Service按照其启动的方式,可分为两种:1、StartedStarted的Servic
- Android技巧之自动加载布局
gzthss
Android
LOL决赛就要来了,干死韩国棒子,哈哈....Sorry突然穿越了,今天分享个小技巧就是自动加载布局,考虑到Android设备的各种分辨率,各种屏幕尺寸,你是不是被搞的焦头烂额了呢,有了这个技巧,一切就都好解决了,关键点在于理解Android的限定符!限定符(Qualifiers)在资源res文件下,建立对应的layout布局文件夹,Android就可以自动根据设备的实际情况来匹配了,看下的工程中
- android 玩转ContentProvider之二--实现多个ContentProvider对多张表进行操作
thisiscx
Android
android玩转ContentProvider之二--实现多个ContentProvider对多张表进行操作分类:android技巧总结2012-03-1723:44841人阅读评论(0)收藏举报本人原创作品,谢绝转载!上一篇android玩转ContentProvider之一--实现ContentProvider操作数据库讲了ContentProvider基本用法,下面提高一下,实现两个Con
- android技巧
流云2842
android开发版本控制系统单元测试布局性能
摘要●使用Gradle和它推荐的工程结构●把密码和敏感数据放在gradle.properties●不要自己写HTTP客户端,使用Volley或OkHttp库●使用Jackson库解析JSON数据●避免使用Guava同时使用一些类库来避免65kmethodlimit(一个Android程序中最多能执行65536个方法)●使用Fragments来呈现UI视图●使用Activities只是为了管理Fra
- Android技巧:学习使用GridLayout
alexhilton
Androidandroidlistview
GridLayout是一个非常强大的网格类布局,它不但能像TableLayout那样,实现网格类布局,但它更为强大的地方在于每个Cell的大小可以横向或者纵向拉伸,每个Cell的对齐方式也有很多种,而且不像TableLayout,需要一个TableRow,GridLayout可以通过指定Cell的坐标位置就能实现Cell的拉伸,从而实现,大小不一致的风格卡片式布局。基本概念GridLayout把页
- android技巧:EditText输入错误时该怎样提示用户
dianwei5413
验证用户输入内容(EditText)应该及时准确的告诉用户,那么在Android系统中提示用户通常有以下做法:1)使用Toast提示1Toast.makeText(this,"邮箱格式不正确",Toast.LENGTH_LONG).show();2)使用EditText的setError提示12EditTextet=(EditText)findViewById(R.id.etTest);et.se
- Android技巧之drawablePadding设置
peak1chen
Android
1.问题我想很多小伙伴都和我一样应该很喜欢TextView中drawableLeft、drawableTop、drawableRight、drawableBottom这几个属性,因为我们可以直接用它来画出来一个图文排列的标签或者按钮,这样就对于用两个控件组成的相对复杂的布局来说容易的多,这在移动UI开发中很常用,但是这样经常会有个问题困扰着我,因为有时候我们想把图片和文字对应居中,这样就会出现关于
- Android技巧 - 收藏集 - 掘金
weixin_33713503
Android中使用ViewStub提高布局性能-Android-掘金在Android开发中,View是我们必须要接触的用来展示的技术.通常情况下随着View视图的越来越复杂,整体布局的性能也会随之下降.这里介绍一个在某些场景下提升布局性能的View,它就是ViewStub....Android小技巧PartII——软键盘遮挡登录按钮-Android-掘金登录、注册等界面经常会出现软键盘弹出遮挡登
- Android技巧2:登录注册解决方案
IT_xiao小巫
前言几乎每个app都会有登录注册的功能,可以看看笔者开发的『南方周末新闻阅读器』,登录、手机注册、忘记密码这些入口,这些功能在app中要如何来实现呢?这个模块看似很简单,但要做好就需要考虑很多细节,比如对用户的输入的容错,操作的提示文案的设定,登录成功保存用户信息等等。业务流程图登录注册流程业务逻辑描述上一节的流程图已经很清晰的展现了登录注册的流程,这里继续用文字说明一下:点击进入个人中心或者需要
- 你不可错过的android技巧
DevWang
1、类的单例化publicclassA{privateA(){}publicstaticclassHOLDER{publicstaticAinstance=newA();}publicstaticAgetInstance(){returnHOLDER.instance;}}不用再考虑其他什么线程安全是一次同步还是两次同步.2、点击两次退出应用publicclassMainActivityexten
- 【Android技巧之相见恨晚系列】-自制Gradle脚本动态设置版本号
捡淑
publicstaticfinal传送门传送门①=更优雅的Android发布自动版本号方案;publicstaticfinal传送门传送门②=Android应用编译时自动生成版本号;publicstaticfinal传送门传送门③=AndroidStudio多渠道打包、自动版本号及gradlew命令的基本使用;以前在做重度/中度SQLite相关的应用的时候,经常遇到一个问题,就是需要不停的增加数据
- Android技巧1:启动屏+功能引导页
IT_xiao小巫
前言很长一段时间没写博客了,再不写点东西真说不过去,把工作上的一些有价值的东西整理出来分享,在当下还有点时效性,不然迟早会烂在肚子里的。还记得之前小巫有个开源计划是想实现一个星期开发app,现在把它拾起来,计划没有实行起来跟我那懒惰的身躯有关,任何伟大的事情都需要强大的执行力才能实现,慢一点没关系,能创造点东西就是值得的事情。本篇博客先介绍一个app最常见的特性,就是新功能属性介绍和启动屏,一般会
- 【Android技巧之相见恨晚系列】-TextView/string.xml冷门小技巧:占位转换符%1$s、%1$d等的用法
捡淑
技巧比较冷门,我今天用到才了解到,以前都没接触过。。。然而却发现这是很早就已经有的技巧。。。引子:如果一段文字需要多段TextView拼接而成,比如:“我叫XXX,今年XX岁了,身高X.X米”。拿到这样的需求可能我们第一反应就是StringBuilder的append(也许是因为我比较low的原因).然而这次需求是在PreferenceFragment中监听preference的变化动态设置该pr
- Android技巧之Space控件
Duckdan
Android技巧
一、没有做任何处理的Activity此时的清单文件代码如下:此时MainActivity.java的代码如下:packageorg.chromium.chrome.browser.spacedemo;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;publicclassMainActivityextend
- Android技巧:003使用Intent连接多个活动
nineteens
003Intent
Intent是Android各组件之间进行交互的一种重要方式,一般被用于启动活动、启动服务以及发送广播等场景。显式Intent:Intent有多个构造函数重载,其中一个Intent(ContextpackageContext,Classcls)。第一个参数要求提供一个启动活动的上下文,第二个参数是指向想要启动的目标活动。创建好Intent后,用startActivity()方法启动即可。如下,在M
- Android技巧之ViewStub的使用
Duckdan
Android技巧
小提示:使用AndroidStudio3.1.2版查看View树最顶部菜单栏Tools–>LayoutInspector,在弹出的窗口选择设备单击“OK”即可。一、使用include加载布局MainActivity的布局文件如下所示:1.1未使用merge的情况hear_1_layout.xml的源码如下所示:1.2使用merge的情况此处将MainActivity布局文件中include标签的属
- Android技巧之ViewStub的使用
Duckdan
Android技巧
小提示:使用AndroidStudio3.1.2版查看View树最顶部菜单栏Tools–>LayoutInspector,在弹出的窗口选择设备单击“OK”即可。一、使用include加载布局MainActivity的布局文件如下所示:1.1未使用merge的情况hear_1_layout.xml的源码如下所示:1.2使用merge的情况此处将MainActivity布局文件中include标签的属
- Android技巧之Space控件
Duckdan
Android技巧
一、没有做任何处理的Activity此时的清单文件代码如下:此时MainActivity.java的代码如下:packageorg.chromium.chrome.browser.spacedemo;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;publicclassMainActivityextend
- Android技巧
anlun
Android
Android开发中的一些小技巧2015/02/0229882dip转px12345publicintconvertDipOrPx(intdip){floatscale=MarketApplication.getMarketApplicationContext().getResources().getDisplayMetrics().density;return(int)(dip*scale+0.
- Android技巧之封装Log工具类
jdsjlzx
android
1.前言开发过程中打日志已成为我们平时Debug调试不可缺少的一部分,AndroidSDK给我们也提供了很不错的工具类,并且分了不同的日志级别:Log.v()Log.d()Log.i()Log.w()andLog.e()分别对应VERBOSE,DEBUG,INFO,WARN,ERROR,其中Verbose不会在release版本中被编译进应用程序包中,而Debug日志根据AndroidAPI说会在
- Android技巧小结之新旧版本Notification
ACM_TH
本文转载至点击Notification即通知,用于在通知栏显示提示信息。在较新的版本中(APIlevel>11),Notification类中的一些方法被Android声明deprecated(弃用),其实基本上相当于全部弃用了,因为这个类本身方法就少得可怜。Android官方声明弃用,一定有它的理由,虽然我也不知道是什么。奈何本人轻度强迫症患者,人家都建议你不要用了,那就不要老是恪守着N年前的东
- 【Android】使用技巧 —— 快速进入某一界面
ly1414725328
android
【关键词】android技巧 导航【问题】开发一个比较大的应用的时候,可能只是负责某一个模块;如果这个模块层次比较深(点击多次才能进入),那么调试的时候,每次都点击那么多次,就会显得很难受;如果不符合进入自己负责的模块的条件,那么将无法进入到自己的模块中进行调试;有没有什么办法直接进入到自己的模块中呢?【解决方案】特性:一个应用可以有多个入口;给自己的模块里的activity添加到launcher
- Android技巧之drawablePadding设置
Peak1Chen
androidtextviewdrawablePa
1.问题我想很多小伙伴都和我一样应该很喜欢TextView中drawableLeft、drawableTop、drawableRight、drawableBottom这几个属性,因为我们可以直接用它来画出来一个图文排列的标签或者按钮,这样就对于用两个控件组成的相对复杂的布局来说容易的多,这在移动UI开发中很常用,但是这样经常会有个问题困扰着我,因为有时候我们想把图片和文字对应居中,这样就会出现关于
- Android技巧2:登录注册模块解决方案
wwj_748
android解决方案
前言几乎每个app都会有登录注册的功能,可以看看笔者开发的『南方周末新闻阅读器』,登录、手机注册、忘记密码这些入口,这些功能在app中要如何来实现呢?这个模块看似很简单,但要做好就需要考虑很多细节,比如对用户的输入的容错,操作的提示文案的设定,登录成功保存用户信息等等。业务流程图业务逻辑描述上一节的流程图已经很清晰的展现了登录注册的流程,这里继续用文字说明一下:1.点击进入个人中心或者需要用户登录
- Android技巧一之启动屏+新功能左右导航逻辑
IT_xiao小巫
前言很长一段时间没写博客了,再不写点东西真说不过去,把工作上的一些有价值的东西整理出来分享,在当下还有点时效性,不然迟早会烂在肚子里的。还记得之前小巫有个开源计划是想实现一个星期开发app,现在把它拾起来,计划没有实行起来跟我那懒惰的身躯有关,任何伟大的事情都需要强大的执行力才能实现,慢一点没关系,能创造点东西就是值得的事情。本篇博客先介绍一个app最常见的特性,就是新功能属性介绍和启动屏,一般会
- Android技巧1:启动屏+新功能左右导航
wwj_748
android
前言很长一段时间没写博客了,再不写点东西真说不过去,把工作上的一些有价值的东西整理出来分享,在当下还有点时效性,不然迟早会烂在肚子里的。还记得之前小巫有个开源计划是想实现一个星期开发app,现在把它拾起来,计划没有实行起来跟我那懒惰的身躯有关,任何伟大的事情都需要强大的执行力才能实现,慢一点没关系,能创造点东西就是值得的事情。本篇博客先介绍一个app最常见的特性,就是新功能属性介绍和启动屏,一般会
- 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