The Spring Blog

News and Events

Spring 3.1 M1: Introducing FeatureSpecification support

UPDATE: The FeatureSpecification functionality described in this blog post was removed in Spring Framework 3.1 M2 in favor of @Enable* annotations. See the 3.1 M2 announcement for more information.


Earlier in this series I touched on how the new @Profile annotation can be used in conjunction with @Configuration classes to take advantage of Spring’s bean definition profiles. Today, we’ll look at an entirely new addition to the code-based configuration landscape in Spring 3.1: FeatureSpecification classes and their related support.


This week in Spring: February 15th, 2011

This last week has seen a record number of... well, records, if nothing else! First, Juergen Hoeller - Spring project lead and all around nice guy - gave a webinar introducing the new features in Spring 3.1 to record attendance numbers. Then, as if that weren't enough, the next day the first milestone of Spring 3.1 was released to record numbers of downloads. That would've been enough. I don't know about you, but I could've stopped right there. Then, over the course of the last week we've seen what I imagine is a record number of new releases from other Spring projects! Finally, yesterday, no doubt in reaction to all this other record activity, we saw the largest record number of people hit the SpringSource blog yet! In summary, Spring 3.1 milestone mania, numerous new projects, and as always a healthy dose of community-awesomeness (go team!)


GORM for MongoDB: New Milestone, Richer Experience

Last year we introduced support for MongoDB in GORM (along with many other GORM implementations) and it has been extremely well received by the community. We have had a ton of feedback, and today we are pleased to announce a new release (Milestone 2) which addresses some of the feedback we have received.

Embedded Document Support

The number one requested feature was nested document support and in this release we have improved that significantly. Now you can embed other domains using the standard embedded mapping in GORM:


Spring Data Document - MongoDB Support 1.0.0.M1 Released

Dear Spring Community,

I am pleased to announce that the very first milestone release of the Spring Data Document 1.0 project with MongoDB support is now available!

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The MongoDB module provides integration with the MongoDB document database.

Downloads | JavaDocs | Reference Documentation | Changelog


Spring 3.1 M1: Unified Property Management

In the first two posts of this series, I described the bean definition profiles feature, and how it relates to the Environment abstraction new in Spring 3.1 M1. Today we’ll take a look at a second aspect of the Environment – how it helps simplify the concern of configuration property management.

Understanding property sources

Spring’s Environment abstraction provides search operations over a configurable hierarchy of property sources. To explain fully, consider the following:

ApplicationContext ctx = new GenericApplicationContext(); Environment env = ctx.getEnvironment(); boolean containsFoo = env.containsProperty("foo"); System.out.println("Does my environment contain the 'foo' property? " + containsFoo);

Spring 3.1 M1: Introducing @Profile


In my earlier post announcing Spring 3.1 M1, I discussed the new bean definition profiles feature as applied when using Spring <beans/> XML to configure the container. Today we’ll introduce the new @Profile annotation and see how this same feature can be applied when using @Configuration classes instead of XML. Along the way we’ll cover some best practices for designing @Configuration classes.

Recall @Configuration

For those unfamiliar with @Configuration classes, you can think of them as a pure-Java equivalent to Spring <beans/> XML files. We’ve blogged about this featureset before, and the reference documentation covers it well. You may want to revisit those resources if you need an introduction or a refresher.


SpringOne 2GX 2010 Tech Talk: Configuration Enhancements in Spring 3.1

SpringOne 2GX 2010 Tech Talk: Configuration Enhancements in Spring 3.1
release of Spring 3.1 InfoQ SpringOne 2GX 2010 Configuration Enhancements in Spring 3.1 Chris Beams

Also last week Juergen Hoeller gave a webinar on the Spring 3.1 milestone release. In case you can were not able to attend in person, a full recording of the webinar has now been posted so you can get all of the details from the source!

Also don't forget to read Chris's recent blog post about Bean Definition Profiles. This is the first in a short series that will be covering the details of the new release.


Spring Framework 3.1 M1 released

The first milestone release of Spring 3.1 has just been published [1], and this article kicks off a series of posts where I and other team members will walk through each of the major features. Even in the first milestone there’s already a lot to talk about!

  • Bean definition profiles
  • Unified property management through Spring's new Environment abstraction
  • Enhancements to Java-based configuration with @Feature methods
  • Expanded MVC namespace support and a Java-based configuration equivalent
  • Streaming support and new interception model for the RestTemplate API
  • Comprehensive caching support
  • New c: XML namespace for concise configuration of constructor injection

Spring 3.1.0 M1 Released

The first milestone of Spring 3.1 is now available from our Maven repository or for direct download from our community download page. This release includes new features such as:

  • Bean definition profiles

  • Enhancements to Java-based container configuration

  • Caching abstraction

  • new c: XML namespace

  • Improvements to Spring MVC

SpringSource Blog

Download | Documentation | Javadoc API | Change Log | JIRA

Don’t forget that Spring users can ask questions in the community forum and identify issues in JIRA as well.