Newsletter - December 2012, EMEA

VMware :: SpringSource
SpringSource Newsletter :: a division of VMware
December 2012 – Issue 50
   
SpringOne 2GX: October 15-18, 2012 – Registration Open

Spring Framework 3.2 GA Now Available

The GA release of Spring Framework 3.2 is now available from the SpringSource repository. If you're not already familiar, see our quick tutorial on resolving these artifacts via Maven. The complete distribution zip is available as usual from the SpringSource community download site. A major area of focus for 3.2 is ensuring that Spring Framework runs flawlessly on JDK7. We encourage all Spring users on JDK7 to give the 3.2 GA bits a try!

  In This Issue      
  Latest Articles
Spring Framework 3.2 GA is Now Available
Monthly TechTips: Spring and STS
Webinars and Videos
Software Release Summary
Blog Digest
  Webinars & Videos
Spring Framework 3.2 – Themes and Trends
Register – January 17, 2013

Architecture of a Modern Web App
Register – January 24, 2013

More Videos
  Monthly TechTips – Runtime and Designtime  
  Monthy Spring TechTip: The Spring 3.2 Cache Abstraction
The Spring Framework includes a declarative caching abstraction. The cache abstraction behaves very much like Hibernate's second level cache, except that it's not tied to any persistence technology, and instead should be used to decorate your service tier code. To use it, simply add Spring 3.2 to the classpath and then wire up the CacheManager that you want to use. Once you've configured a CacheManager, using the abstractions is easy: just add annotations! Let's look at some examples. To register declarative support for the Caching abstraction, you can add <cache:annotation-driven /> to your XML file, or use the @EnableCaching annotation in your Java configuration class. Once the caching support is enabled, then you only need to decorate your Spring beans as appropriate. Spring Framework 3.2 adds JCache 1.0 support - the first to support the long dormant JSR 107.

@Cacheable(value="book", key="T(Foo).hash(#isbn)")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)

The @Cacheable annotation caches the result of a method invocation if and only if a value doesn't already exist under the key provided in the backing cache. If it does exist, it simply returns that value. The result of the method call be cached in the region ("book") that's described in the @Cacheable annotation. The key attribute, which is optional, is a Spring Expression Language statement that tells Spring how to construct a key for the cached value. Here, we're telling Spring to call a static method on a class Foo to create the key, passing in the first parameter of the method. If absent, Spring will create a key based on all the values of all the parameters in the method. Caching is one side of the story: what happens if you want to remove an entry from the Cache? Evict it!

@CacheEvict(value="book", key="T(Foo).hash(#isbn)")
public void removeBook(ISBN isbn)

There are many that come out of the box with Spring itself, including support for Ehcache, and java.util.concurrent.ConcurrentHashMap<K,V>s. The JDK version is powerful because many different caching abstractions offer support for consuming the cache as an implementation of java.util.Map. For example, Hazelcast, Coherence, and GemFire all support a Map implementation that's backed by the data grid. That said, it's usually preferable to use a CacheManager that's optimized for a specific cache implementation. Besides the options shipped as part of the Spring framework, other projects like Infinispan, Spring Data Redis and Spring Data GemFire projects ship their own implementations that are tailored specifically for those caches.

Monthy STS TechTip: Rename refactoring in Spring Tool Suite (STS)
The rename refactoring is probably the most widely used feature of todays IDEs and absolutely priceless for every day work. But do you know that we have extended this refactoring support to take care of your Spring configurations as well? You can easily rename Spring beans and the Spring Tool Suite takes care of updating references to your bean automatically for you. And if you refactor Java code, the Spring Tool Suite takes care of updating your Spring config files for you. It doesn't matter it you rename a class or a property, your Spring XML files will be updated automatically for you. So refactoring your Spring-based applications becomes a pleasure.

 
  Webinars and Videos  
  SpringOne 2GX Keynote Replays Available
If you were not able to attend the hugely popular SpringOne 2GX conference in October, you can catch up on the keynote replays. Adrian Colyer describes the evolution of modern application architecture and demonstrates some of the SpringSource research projects in this area. Juergen Hoeller, Mark Pollack and Graeme Rocher present the syntactic philosophy for Spring, a Spring Data and Apache Hadoop demo for the US election and a summary of the latest innovations for Grails. Be sure to subscribe to the SpringSourceDev YouTube channel to be updated when new recordings from SpringOne 2GX are posted.

Spring Framework 3.2 – Themes and Trends
We'll discuss some refinements in the core container as well as key updates in Spring MVC: asynchronous MVC processing on Servlet 3.0, REST support improvements, and the inclusion of the formerly-standalone Spring MVC Test project. Spring Framework 3.2 also comes with a new Gradle-based build and a GitHub-based contribution model, making it even easier for community members to contribute to the Spring Framework project.

January 17, 2013 3:00pm Western Europe (London, GMT) – Register

Architecture of a Modern Web App
No longer are servers the exclusive holder of smarts, and clients simply dumb terminals. Modern applications leverage the strengths of both the client and server to accomplish their tasks. No longer can a client side developer ignore the server, nor a server side developer ignore the client. This talk will explore the interconnected world of clients and servers drawing inspiration from emerging frameworks that are pushing the limits of what’s possible.

We will look at the history of web development to uncover trends that inform future development paradigms. The strengths and weaknesses of each paradigm will be discussed in order to help determine the best fit for a project.

January 24, 2013 3:00pm Western Europe (London, GMT) – Register

Videos:
SpringOne 2GX 2012 Web Track: Designing REST-ful API using Spring 3
IOC + Javascript at SpringOne 2GX
Getting the most out of JPA, JDBC and REST
Introducing Hadoop
 
  Software Release Summary  
  Spring Framework 3.2 GA
Spring Integration 2.2.0 GA
Spring Tool Suite and Groovy/Grails Tool Suite 3.2.0.M1
Spring for Android 1.0.1
Spring Social 1.1.0M1
 
  Blog Digest  
  IOC + Javascript at SpringOne 2GX
Introducing Spring Migration Analyzer
Dependency Analysis in Scripted
 
  SpringSource University – Upcoming Training  
  Core Spring
Enterprise Integration
Hibernate with Spring
Rich Web Applications
Groovy and Grails  
 
 
Read our blog Follow us on Twitter Watch us on YouTube
 
  SpringSource University, Learn Spring from the Source
 
 
18799