VMware offers training and certification to turbo-charge your progress.Learn more
Welcome to another edition of "This Week in Spring" Things are moving fast and furious as we near next week's VMworld 2011. I want to invite any attendees to visit your expert technologists at the VMWorld Spring booth. Let me know if you read this weekly roundup. Lots to talk about this week, so let's get to it!
<li>The preliminary session schedule has been published for <a href="http://www.springone2gx.com">SpringOne 2GX 2011</a>. This year's show is going to be another fantastic mix of deep technical content, cutting edge development and the absolute best place to learn about everything in the Spring universe. Be sure to <a href="http://springone2gx.com/conference/chicago/2011/10/register">register now</a>!</li> <LI> <a href="http://static.springsource.org/spring/docs/3.0.6.RELEASE/changelog.txt">Spring 3.0.6's was just released!</a> This release addresses over 50 minor issues and includes about a dozen small improvements. Be sure to read the <a href="http://static.springsource.org/spring/docs/3.0.6.RELEASE/changelog.txt">Change Log</a> for all the details and <a href="http://www.springsource.com/download/community?project=Spring%20Framework&version=3.0.6.RELEASE">download</a> the bits as soon as possible. </LI> <LI> <a href="http://www.springsource.org/node/3208">Spring Data Graph 1.1.0 with Neo4j support</a> has just been released. The new version features improved support for the latest and greatest Neo4j iteration, (1.4.1), as well as improved support for queries. You can now build repositories using Spring Data Graph with much greater ease. Also, the project's been renamed to reflect its core focus, Neo4j, thus, this will be the <EM> Spring Data Neo4j</EM> project, going forward. This rename is already evident in the packages in the project. </LI>
I like <a href="http://www.cloudfoundry.org">CloudFoundry.</a> Others may not be using CloudFoundry, as it is relatively new. Some might still be using Google App Engine, for example. And that's OK. Spring always has been, and will continue to be, about portability and choice. So it is great to see a post that demonstrates <a href="http://www.springsource.org/node/3207">it is easy to get Spring Roo applications running on Google App Engine</a>, too! </LI>
singletonconcept: only use singletons for beans that don't have to have client-specific state. While he poses the golden rule slightly differently, I think the distinction is important. Spring beans can themselves maintain state, but they must guard that state from mutations by multiple (and often concurrent) clients.
A lot of times, too, Spring lets you work as though you have client-specific state, but are in fact using a singleton. An example of this is in the way Spring supports injection of the JPA <CODE>EntityManager</CODE>, which is <EM>not</EM> thread-safe. Spring intercepts calls to the EntityManager proxy that's injected and then, in a thread-local, creates an EntityManager so that each request <em>effectively</em> has client-specific state, but they can program in terms of single-threaded access.
That said, this post is a very good read.
closeMethodfor speeding up the closing of JNDI resources that would otherwise be closed during garbage collection.
</lI> <LI> This <a href="http://www.ibm.com/developerworks/web/library/x-springandroid/index.html">post</A> by Deepak Vohra on IBM's DeveloperWorks has some great information on using Spring Android's <CODE>RestTemplate</CODE> support to consume RESTful web services (which, in this example, were developed using JAX-RS). Interoperability is king, and Spring's REST support makes it easy.
<LI><a href="http://www.dzone.com/links/r/spring_integration_with_mvc_freemarker_jsp_webser.html">This fantastic post covers using FreeMarker</a> (via the <CODE>org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver</CODE> view resolver) for Spring MVC views</a>. I like FreeMarker, and it has a lot to offer compared to straight <CODE>JSP</CODE> (and even compared to straight <CODE>JSPX</CODE>!) The take away, for me, is that Spring MVC supports lots of options, and provides SPIs that make it very simple to integrate new technology for each of the core pieces of the integration.
<LI> Blogger Mkyong has posted a tutorial <a href="http://www.mkyong.com/spring-security/spring-security-hello-world-example">introducing how to use Spring Security 3.</a> The tutorial covers the basics of setting up Spring Security 3 with Maven 3 for a simple web application login scenario. </LI> <LI> <a href="http://www.tomcatexpert.com/blog/2011/08/19/apache-tomcat-6033-released">Apache Tomcat 6.0.33 has been released!</a> Apache Tomcat 6.0.33 is primarily a security and bug fix release. All users of older versions of the Tomcat 6.0 family should upgrade to 6.0.33. Note that is version has 4 zip binaries: a generic one and three bundled with Tomcat native binaries for different CPU architectures. Apache Tomcat 6.0 includes new features over Apache Tomcat 5.5, including support for the new Servlet 2.5 and JSP 2.1 specifications, a refactored clustering implementation, advanced IO features, and improvements in memory usage. </LI>