Spring 3.0.5 发布,J2EE框架

news/2024/5/18 22:43:19 标签: spring, j2ee框架, classloader, processing, hibernate, jdbc

Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由 Rod Johnson 和 Juergen Hoeller等开发。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。

  Spring 中包含的关键特性:

  强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。

  一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。

  数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。

  内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。

  JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码), 简化了错误处理, 大大减少了程序员的编码量. 再次利用JDBC时,你无需再写出另一个 '终止' (finally) 模块. 并且面向JDBC的异常与Spring 通用数据访问对象 (Data Access Object) 异常等级相一致.

  以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持, 解决了许多典型的Hibernate集成问题. 所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范.

  灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。

  提供诸如事务管理等服务的面向方面编程框架。

  在设计应用程序Model时,MVC 模式(例如Struts)通常难于给出一个简洁明了的框架结构。Spring却具有能够让这部分工作变得简单的能力。程序开发员们可以使用Spring的 JDBC 抽象层重新设计那些复杂的框架结构。

  Spring 3.0.5 发布了,该版本修复了超过80个的小问题以及关于 Spring 表达式语言、Annotation支持以及嵌入式数据库的一些改进。

  Changes in version 3.0.5

  * support for Hibernate 3.6 final

  * added core serializer abstraction with default implementations using Java Serialization

  * consistent use of JDK 1.5's "ThreadLocal.remove()" over "ThreadLocal.set(null)"

  * fixed JodaTimeContextHolder to use a non-inheritable ThreadLocal and expose a reset method

  * revised "ClassUtils.isAssignable" semantics to cover primitives vs wrappers in both directions

  * optimized AnnotationUtils findAnnotation performance for repeated search on same interfaces

  * ConversionService protects itself against infinite recursion in ObjectToCollectionConverter

  * fixed TypeDescriptor to correctly resolve nested collections and their element types

  * BeanWrapper does not attempt to populate Map values on access (just auto-grows Map itself)

  * fixed Autowired/CommonAnnotationBeanPostProcessor to prevent race condition in skipping check

  * fixed @Value injection to correctly cache temporary null results for non-singleton beans

  * ApplicationContext registers context-specific ClassArrayEditor for its bean ClassLoader

  * refined ApplicationContext singleton processing to not fail for manually registered null instances

  * fixed ApplicationContext event processing for repeated invocations to non-singleton listener beans

  * optimized @Bean error messages for static factory methods as well as for argument type mismatches

  * modified expression parsing to pass full TypeDescriptor context through to ConversionService calls

  * adapted expression parser's Constructor/MethodResolver to accept TypeDescriptors instead of raw types

  * SpEL supports projection on any kind of Collection (not just on Lists and arrays)

  * SpEL MapAccessor consistently rejects "target.key" style access to Maps if no such key is found

  * SpEL method invocations prefer method with fewest parameters (e.g. no-arg over vararg)

  * AspectJExpressionPointcut uses bean ClassLoader for initializing the AspectJ pointcut parser

  * added AnnotationAsyncExecutionAspect as AspectJ-based variant of @Async processing

  * added mode="proxy"/"aspectj" and proxy-target-class options to task:annotation-driven

  * JDBC bundle uses local ClassLoader as bean ClassLoader for "sql-error-codes.xml" parsing

  * EmbeddedDatabaseFactory shuts down database when failing to populate it in "initDatabase()"

  * embedded database support now also works with Derby >= 10.6

  * "jdbc:embedded-database" uses id as database name to allow multiple ones in parallel

  * ResourceDatabasePopulator throws descriptive ScriptStatementFailedException with resource details

  * added configurable Connection/Statement/ResultSet target types to Jdbc4NativeJdbcExtractor

  * added OracleJdbc4NativeJdbcExtractor with pre-configured Oracle JDBC API types

  * DefaultLobHandler's "wrapAsLob" mode works with PostgreSQL's "getAsciiStream()" requirement

  * ResultSetWrappingSqlRowSet (as used by JdbcTemplate's "queryForRowSet") supports column labels now

  * LocalSessionFactoryBean's "entityCacheStrategies" works with region names on Hibernate 3.6 as well

  * fixed DefaultMessageListenerContainer's no-message-received commit to work without Session caching

  * DefaultMessageListenerContainer's skips no-message-received commit on Tibco (avoiding a deadlock)

  * JaxWsPortClientInterceptor does not fall back to annotation-specified name as portName anymore

  * UriTemplate is serializable now

  * fixed AnnotationMethodHandlerAdapter's caching to avoid concurrency issues in RequestMappingInfo

  * fixed @MVC processing of parameter-level annotations to work with interface-based proxies again

  * revised @RequestParam processing to support CSV-to-array/collection binding with ConversionService

  * fixed EvalTag's EvaluationContext caching to properly handle JSP tag caching across requests

  * AbstractJasperReportsView only sets locale model attributes if not present already

  * DispatcherPortlet throws custom NoHandlerFoundException instead of misleading UnavailableException

  * DispatcherPortlet copies all action parameters to render parameters in case of an action exception

  * DispatcherPortlet's default resource serving explicitly prevents access to WEB-INF and META-INF

  * Portlet @ExceptionHandler methods allow for writing the response directly (like in the Servlet case)

  * MockHttpServletRequest/HttpSession/etc returns independent Enumeration from "getAttributeNames()"

  详情请看 Change Log:http://static.springsource.org/spring/docs/3.0.5.RELEASE/changelog.txt

  Spring 3.0.5下载地址:http://www.springsource.com/download/community?project=Spring%20Framework&version=3.0.5.RELEASE


http://www.niftyadmin.cn/n/1049846.html

相关文章

OIM同步OID(OID-Connector 9.0.4.12)

一、OIM与OID同步。 1.安装文件及需要的包。 OID-Connector 9.0.4.12.rar:OID连接器9.0版本。 jndi-1_2_1.zip:jndi包。(貌似可以不要) ldap-1_2_4.zip:ldap包。 2.准备工作。 1)解压ldap-1_2_4.zip,从解压…

elasticsearch 基础特点

1、Elasticsearch对复杂分布式机制的透明隐藏特性Elasticsearch是一套分布式的系统,分布式是为了应对大数据量,隐藏了复杂的分布式机制分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有care过数据怎么进行…

TFS创建团队项目(三)

打开Visual Studio 2013,视图-团队资源管理器-连接图标(插头图标)当前是没有TFS服务器,点击服务器按钮添加,并在URL地址栏里输入装有TFS的服务器IP地址(配置完TFS后有这个URL:http://tfs-server…

case表达式

1 case简介    Case表达式,是可以在sql中使用if ..then..else的逻辑判断,而避免使用PL/SQL的有效方法,在sql中主要有两种:简单case和搜索case,在plsql中还有两种种case 语句。与decode 类似。(有一定的区别&#xff…

Tomcat的Https设置及Http自动跳转Https

Https相关介绍 Https是由NetScape公司设计的一个基于Http的加密传输协议,可以这样理解Https Http SSL(安全套接层),Https的端口为443,而且还需要申请CA数字证书认证。 3.Https的设置①申明CA数字证书 这里推荐一个免费的阿里平台的CA数字证书&#x…

Flex中动态获取 services-config.xml中配置的ChannelSet

security的整合,在做登陆的时候发现需要调用*(ChannelSet).login(name,pass)才能调用spring Security的组件实现验证。但是问题来了,这个ChannelSet从哪儿来??总不能自己凭空new一个吧??google了一下返现 …

洛谷 P4070 [SDOI2016]生成魔咒 解题报告

P4070 [SDOI2016]生成魔咒 题目描述 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示。例如可以将魔咒字符 \(1\)、\(2\) 拼凑起来形成一个魔咒串 \([1,2]\)。 一个魔咒串 \(S\) 的非空字串被称为魔咒串 \(S\) 的生成魔咒。 例如 \(S[1,2,1]\) 时,它的…

新年总结

时间一晃而过,弹指之间,2014年悄然而至,自从2010年6月份刚进入公司,我是第一次接触公司、接触通信行业、接触公司网络管理及维护。虽然跟我的专业和技能都一致,但所有的实际经验都是第一次,让我没有任何准备…