- struts2+spring2+hiberante3.2 配置 ,struts2+spring2+JPA+AJAX 配置
tgh_china
strutsspringajaxjpahibernateannotations
本文翻译自:http://cwiki.apache.org/S2WIKI/struts-2-spring-2-jpa-ajax.html我今天下午调试成功的,昨天调试了一天,都没有成功,不是contextLoadListener找不到就是serverstarterror.今天调试成功发现原来是人品问题,是选择hibernate包的时候没有注意hibernatecompatablematrixCom
- Spring进阶 之简介
张宏杰
Springspring框架轻量级
什么是spring框架spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,Springmvc框架,ibatis框架,和Hiberante框架等组合使用。是一个非常优秀的,低侵入性的优秀框架!框架图1)IoC(InversionofControl)控制反转,就是原来的对象的创建由自己
- 浅析Java模板方法的一种使用方式
为什么我会想到使用模板方法呢?在日常开发中,我们经常需要使用编程式事务来解决一些实在的业务问题。以Hibernate框架为例(其实对于ORM框架来说,都大同小异。我们公司使用的是Hiberante,所以这里就以Hibernate为例了),我们实现一个编程式事务如下:SessionFactorysessionFactory=(SessionFactory)applicationContext.get
- Hibernate笔记------缓存
奋斗猿。。。
hibernatehibernateehcache
二级缓存Hiberante二级缓存Hibernate的缓存:一级缓存:session级缓存二级缓存:sessionFactory级缓存,用处很大(线程级:ehcache)三级缓存:分布式缓存(进程级:redis)缓存分类实体缓存:根据实体的ID进行缓存,缓存的是一个一个的对象查询缓存:根据HQL查询语句进行缓存,缓存的是结果集。setCacheable(true)缓存:是很多个map(key,va
- 最近要做一个spirngMVC+hibernate+shiro框架整合,特此记录一下
Harry小哥哥
通过这篇文章你可以了解到:1.SSH三大框架(spring+springMVC+Hiberante)与shiro安全验证框架如何整合;2.通过一个示例,快速理解shiro框架。1.业务需求分析用户N-角色N-权限N我们可以想象一下,在平时工作中的职务,比如:业务经理,部门主管等,他们拥有很多的权力,而一个公司中不会只有一个业务经理,也不会只有一个部门主管,如果我们要给不同的人分配职务权力时,每次都
- (4) 基于领域分析设计的架构规范 - 充血模型之实体
凝枫
读写隔离后的世界基于上面提到的读写隔离的思想,那么我们可以很清楚地看到上面这种情况可以看到:世界观查询业务,从入口层(如Controller),调用Finder,而Finder调用Repository(具体实现如Hiberante,Mybatis等等均可),这一条线下来,我们全然不用考虑这个系统的增删改就是如何做的,就像他们完全处于不同的空间一样,互不干涉,互不影响,甚至,永远互不相见。某种程度上
- Spring Boot 配置多数据源
GreyZeng
SpringSpringSpringBoot
SpringBoot配置多数据源作者:Grey原文地址:博客园:SpringBoot配置多数据源CSDN:SpringBoot配置多数据源说明本文主要介绍了SpringBoot下如何配置多数据源。环境和版本Java版本:17SpringBoot版本:3.0.0数据库:H2注:本示例基于JdbcTemplate,如果使用JPA,Hiberante或者Mybatis等,方法类似。代码说明首先,配置两个
- Mybatis
EdwinD
一。MyBatis本质:就是代理模式体现;MyBatis作者思想认为JDBC开发流程中所有的步骤都是次要业务,认为SQL编写主要任务。开发人员专注于SQL编写应该忽略JDBC开发流程,轻度体现ORM思想。二MyBatis与Hibernate比较1。Hibernate:杜绝开发人员亲自试用JDBC,杜绝亲自试用sql命令Hibernate无法SQL优化Hiberante缓存依赖程度过大,一级缓存如何
- hibernate关系映射管理(一对多,多对一,一对一,多对多)
java_esky110
hibernate教程
1、什么是关系映射所谓的关系映射指的是数据库表与表之间的关联关系,通常我们会把表之间的关系总结为4种,一对一,一对多,多对一,多对多。这里面我们数据库通常是通过外键和关联表来进行表示的。而对于我们hiberante来说,也需要通过相应的配置去管理这种关系。我们hibernate通过这种能表现关联关系的配置去创建表的时候,就可以在表结构上把这种关联关系给创建出来1、一对多首先我们先理解一对多的什么意
- 使用Eclipse通过连接数据库生成实体类和映射文件
zheng2008hua
Hibernate
现在hibernate在项目中的应用是越来过广泛了。我是从hibernate开始支持注释语法后才开始研究它的。说实在的,原来的hibernate生成的一堆堆的XML文件看着就头晕,还不如自己写的SQL语句来的舒服,所以一直听朋友和同事介绍,可自己一直不屑用之。可是现在有福了hibernate是JPA最常用的实现之一,而且hiberante自身也对注释语法进行了支持。现在再不用去看那一堆堆的XML映
- mysql 批量插入数据优化
Simba_hua
1、把insertintotablename(c1,c2,c3)values(v1,v2,v3);insertintotablename(c1,c2,c3)value(v4,v5,v6);变更为insertintotablename(c1,c2,c3)values(v1,v2,v3),(v4,v5,v6);效率会快很多,在用到hibernate框架时,千万不要用hiberante的batchins
- 用JUnit测试Spring管理Hibernate框架的一个例子
Terence Jing
【Json&JUnit】
(源代码:shTesthttps://github.com/TerenceJIng/javaLearn)将JUnit与hibernate整合起来上述例子,分为三个包:src:存放业务代码test:存放测试代码lib:引入Hiberante和Spring框架的jar包。JUnit应用于Spring测试Spring核心配置文件applicationContext.xml:SpringTest.java
- Spring常用错误
iteye_11234
Spring
1-java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory添加包common-logging.jar2-java.lang.ClassNotFoundException:javax.transaction.Synchronization添加包jta.jar(hiberante)3-java.lang.ClassN
- Maven包引用出现重复包,去重复包3种方法(javassist)
仰望天空的黑马
maven
我出现的问题是由于Hiberante中引用的包为org.javassist而strtus2中引用的包为javassist,由于引用不同,导致打包项目内含两个项目,此时布暑项目时会报错误.要去掉一个javassist包1.使用maven中的pulgin功能org.apache.maven.pluginsmaven-war-plugin2.0.2WEB-INF/lib/javassist-3.11.0
- Hibernate快速入门案例——手动增加记录
cakincheng
Hibernate
一介绍Hiberante可以用在J2SE项目,也可以用在J2EE(web项目中)。Struts是web框架,所以用在web项目。二基本原理和项目框架图示意图三开发流程1创建一个项目。2画出一个简单项目框架示意图。3引入Hibernate开发包。http://www.hibernate.org。4开发Hibernate有三种方法(开发顺序)。4.1由Domainobject->mapping->db
- hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
aguangs
hibernate
hibernate.jdbc.fetch_size50//读hibernate.jdbc.batch_size30//写hiberante.cfg.xml(Oracle,sqlserver支持,mysql不支持)5030这两个选项非常非常非常重要!!!将严重影响Hibernate的CRUD性能!C=create,R=read,U=update,D=deleteFetchSize是设定JDBC的St
- spring,hiberante之*** is not valid without active transaction
wzk527
转载
对于提示***isnotvalidwithoutactivetransaction的错误可以在Hibernate的配置文件中做如下修改org.springframework.orm.hibernate4.SpringSessionContext(Hibernate4)对于Hibernate3.x,可以直接把上述设置删除,就不会报错了,具体原因尚不清楚。须知:几乎所有正常的操作都必须在transca
- 怎么使用class使用hibernate的插入数据到数据库
hc_root
hibernate
//创建配置对象Configurationconfig=newconfiguration;//读取默认位置下的默认名称的配置文件(hiberante.cfg.xml)config.configure();//创建会话工厂SessionFactorysf=config.buildSessionFactory();//用会话工厂创建会话Session(注意是hibernate的)session=sf.
- spring 整合hiberante如何取得设置的hibernateProperties
njzdl
J2SE-JAVA基础springhibernateexceptionreferencejavanested
Spring2.5整合Hibernate3时,我想在dao中取得配置文件中设置的hibernateProperties,找了很久都没找到方法.配置如下:Java代码WEB-INF/classes/com/etone/solid/po/org.hibernate.dialect.SybaseDialecttruetruetrue500trueorg.hibernate.cache.EhCachePr
- fluent 接口(链式调用的接口)
nicewuranran
胡言乱语
fluent接口(链式调用的接口)介绍在一些框架中,比如hiberante中,比如配置系统变量时,通常都是链式调用来赋值的.如下赋值就是链式调用:Personperson=newPerson();person.setId(1).setBirthday(LocalDate.of(1991,10,7)).setName("Mark");借助this关键字来实现.JavaCode示例/***尝试写flu
- Hiberante异常之org.hibernate.LazyInitializationException: could not initialize proxy - no Session
突突.
总有异常打扰我Hibernate
1、异常描述org.hibernate.LazyInitializationException:couldnotinitializeproxy-noSession备注:此处hibernate版本号:3.6.10.Final2、示例代码:2-1Clazz.hbm.xml2-2ClazzDao.java/***根据班级id查询班级对象load方法*@paramclazzId*@return*/publ
- Java 程序员面试必备!助你剑指 Offer
蔚1
你想满载Offer而归吗?你想得到更高的薪资吗?你想跳到更大的平台吗?你想瞬间吸引HR的目光吗?本场Chat,我将分享自己的面试经验,让你掌握面试秘诀,想即所得。通过本场Chat你将收获到的知识:Java程序员如何准备简历,吸引HR;Java基础的常见面试题及解析;JVM常见面试题及解析;Spring、SpringMVC、MyBaties、Struts、Hiberante常见面试题及解析;Spri
- hiberante 中generator属性的所示意义
loaferwang
hibernate
“assigned”主键由外部程序负责生成,在save()之前指定一个。“hilo”通过hi/lo算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。“seqhilo”与hilo类似,通过hi/lo算法实现的主键生成机制,需要数据库中的Sequence,适用于支持Sequence的数据库,如Oracle。“increment”主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一
- Hibernate的session.createSQLQuery的几种查询方式
安迪
Hibernate
当我们用HQL进行子查询的时候,如select*fromTreewherepidin(selectidfromTree,此时HIBERANTE就会报错,说什么*号错误之类的。但如果将*改为Tree类里的所有子段时就不会有问题了。就会像平时一样第一行数据返回一个Object[],然后你再根据Tree类里字段对Object[]数组里的值进行转换。这样一来比较麻烦。今天发现如果我SQL来查有一个方法可以
- Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置
晚歌y
hiberante.hbm2ddl.auto这个属性标签中有四个参数可以写,这四个参数是对数据库中插入的进行不同的操作,分别为:validate加载hibernate时,验证创建数据库表结构create每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。create-drop加载hibernate时创建,退出是删除表结构update加载hibernate自动更新数据
- org.dom4j.DocumentException: Connection timed out
flushmeteor
java
用ssh写的一个小项目,经常报出如题目所示的错误。一开始在网上查了一下,是因为网络问题。果然,当时我的电脑是没联网的,后来联上网发现没问题了。可是今天又抽风似的一会报出这个错,一会又没问题的,一怒之下决定彻底搞定它。修改方式如下:将.hbm.xml文件中的dtd修改掉原来是改成我这个项目里没有用到hiberante.cfg.xml,有这个的话,把其中的dtd改成下面的格式(网上查的,没试过)修改完
- Hibernate基本原理解析
IT面试社区
Javaweb相关技术
什么是Hiberante?Hibernate,翻译过来是冬眠的意思,正好现在已经进入秋季,世间万物开始准备冬眠了。其实对于对象来说就是持久化。扫盲--------------------------------------------------------------------------------------------------------持久化(Persistence),即把数据(如
- hiberante 多表查询
chuokai1228
hibernate实现多表联合查询(2012-06-1021:37:28)转载▼标签:联合查询对象联合查询分类:ssh以前用sql实现联合查询是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下。最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQL没多大差别。hibernate很多实现都是靠喜欢配关系,但是如果两张表,数据量都非
- Spring JDBCTemplate与Hiberante混用
stefshawn
Spring
就像我们知道的一样,Hibernate是ORM领域事实上的标准,它在操作数据库方面,提供了最大程度的遍历与快捷,而hibernate与spring的结合,更是将这种便利发挥到了极致,这其中得益于HibernateDaoSupport和HiberateTemplate以及HibernateTransation的大力支持.简单的来说,有了spring,使得使用Hibernate的时候,更简洁,更便利,
- JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析
weixin_30633507
JDBC(JavaDataBaseConnection,java数据库连接)JDBC(JavaDataBaseConnection,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序优点:运行期:快捷、高效缺点:编辑器
- 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