The Spring Blog

Engineering
Releases
News and Events

Custom Project Templates in SpringSource Tool Suite

The SpringSource Tool Suite (STS) provides the New Spring Template Project wizard. Uses this wizard, the user can see a number of project templates, choose one and let the wizard create a complete project, based on that template description. While this gives you an easy way to create new projects, you might wanna define your own custom project templates for your team or your organization. And we will show you how to do this in the following.

1. Step: Contribute a new resources extension to STS


So the first step is to create a new and empty plugin project. You don’t need Java code in there, so don’t create this as a Java project. Just create a new plugin project, deselect the Java options in the wizard and you are done.

Read more...

Green Beans: Getting Started with Spring Integration

Applications don’t exist in a vacuum. They need to communicate with their customers and with other applications. Application Integration is all about enabling this communication. Integration lets applications share services and data with each other, and, just as often, integration helps applications connect with their users.

Spring Integration provides a framework to build integration solutions, to facilitate these kinds of solutions. Spring Integration solutions describe the flow of data through a pipeline. Data enters the processing pipeline as a message. The message is moved forward through named pipes (called channels) that route the data to different components (called endpoints). You can string as many endpoints and channels together as you like.

Read more...

Spring 3.1 M1: Cache Abstraction

One of the major features added in Spring Framework 3.1 M1 is the generic cache abstraction for transparently applying caching to Spring applications. Just like the transaction support, the caching abstraction allows consistent use of various caching solutions with minimal impact on the code.

Purpose

Caches are in general used to improve application performance by transparently serving frequently accessed data in a faster fashion such as serving data from local memory rather than from the network. Many of you have already used caching, whether knowingly or not: most ORM/JPA frameworks provide dedicated caching functionality (also known as the 2nd-level cache). Spring 3.1 M1 however introduces a generic cache mechanism that can be applied to any Java class, method or library: one can use it in conjunction with an existing caching infrastructure, to add caching to APIs without such support (for example JDBC) or simply to improve the performance of a slow, time-consuming and resource-hungry method.

Read more...

This week in Spring: February 22nd, 2011

What a week! Lots of good, foundational content available this week from, and for, the community. Let's get right to it.

     <li> <a href="http://blog.springsource.com/2011/02/21/spring-3-1-m1-mvc-namespace-enhancements-and-configuration/">Rossen Stoyanchev</a> continues the whirlwind introduction to the new features in Spring 3.1, this time with a look at the MVC namespace and @Configuration-based improvements. </li>
    
  1. Chris Beams blogged about the upcoming FeatureSpecification support in Spring 3.1 Feature Specifications provide the same features as the XML namespace infrastructure elements, like <tx:annotation-driven>, in a Java configuration-centric way. This is a very powerful feature, and this blog post is the best way to get started.

  2. SpringSource Tool Suite
    lead Christian Dupuis - tweets that users can now download STS without submitting to the registration form. Very cool!

  3. <li> Can't get enough Spring? 
    

    Check out Spring on your favorite social network!



  4. Glyn Normington has just announced the Eclipse Virgo 3.0.0.M01 release
    is now available for download. The new version
    features tighter integration with the Eclipse stack, including the Eclipse Virgo Jetty server. Additionally it features tighter integration with Equinox.

             </li>
    
             <li>
               Last week, the Spring Integration team released 2.0.3 of the Spring Integration framework. Lots of good fixes and features in this release. Additionally, it's a minimum version to work with the latest Spring BlazeDS release,  <a href="http://twitter.com/m_f_/status/35872618632593408">so check it out now.</a> 
    
              </li>
              <li> Dr. Mark Lui and others at <a href="http://tech.shopzilla.com">Shopzilla</a> have put together a post on their <a href="http://tech.shopzilla.com/2011/02/spring-integration-for-notifying-the-world/">use of the Spring Integration framework at Shopzilla and how to use it.</a> Pretty cool, guys!  
                  </li>
    


  5. So excited was Nicolas Labrot about the prospect
    of using Grails as a view in Spring MVC after seeing it announced
    in the upcoming Spring 3.1 features that he went and implemented a prototype of the feature. Check it out! Looks promising.
  6.                  <li> Ken Rimple, co-author of the upcoming <em>Spring Roo in Action</em> has written up an
                       introduction to the Spring Container's support for BeanPostProcessors, which allow you to tailor the way beans in the context are registered. This is a very good introduction to one of the Spring container's most powerful features. <a href="http://www.rimple.com/tech/2011/2/21/spring-corner-what-are-those-post-processor-beans-anyway.html">Check it out! </a> </li>
                       <li>
    
                  Cody Burleson</a>  pens an introduction to using <a  href="http://www.codyburleson.com/2011/02/12/websphere-portlet-mojo-with-spring-and-dojo-part-1/">Spring, the Dojo JavaScript framework, and WebSphere portlet support in RAD</a> together.  
    
                        </li>
                       <li>The Java Code Geeks are at it again, this time with a look at their view    <a href="http://www.javacodegeeks.com/2011/02/domain-driven-design-spring-aspectj.html">domain-driven design using Spring and AspectJ.  
             </a>
    
    
        </ol>
    
Read more...

Spring 3.1 M1: MVC Namespace Enhancements and @Configuration

In this 5th post of the series describing Spring 3.1 M1 features, I will focus on web applications. In the first half I’ll discuss enhancements to the MVC XML namespace. Then I’ll show how to create the equivalent of the MVC namespace with all Java configuration. At the end I mention some of the Servlet 3.0 related configuration changes you can expect in 3.1 M2.

MVC Namespace Improvements

Spring MVC 3.0 provided a custom MVC namespace. The centerpiece of the namespace – the <mvc:annotation-driven> element, configured everything required to process requests with annotated controller methods. More importantly though it set up a range of defaults that go along with having to do with type conversion, formatting, validation, reading and writing of the body of requests and respones and so on.

Read more...

SpringOne 2GX 2010 Tech Talk: Groovy.DSLs (from: beginner, to: expert)

SpringOne 2GX 2010 Tech Talk: Groovy DSLs
InfoQ SpringOne 2GX 2010 Groovy.DSLs (from: beginner, to: expert) Groovy Guillaume Laforge

Guillaume and Paul Mark provide:

  • A myriad of DSL examples from specialized computing requirements to general business tasks
  • Characteristics to keep in mind when creating your own DSL
  • Details about Groovy's DSL advantages including flexible and malleable syntax, runtime meta-programming, regular expression pre-processing as well as being a Java based runtime
  • Pitfalls and problems to avoid with concrete examples

Many thanks to InfoQ for covering SpringOne 2GX 2010 and providing this outstanding presentations to the community.

Read more...

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.

Introduction

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.

Read more...

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!)

Read more...

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:

Read more...

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

Read more...