<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Matt Stine&#039;s Blog &#187; spring</title>
	<atom:link href="http://mattstine.com/category/spring/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattstine.com</link>
	<description>Thoughts on Java, Groovy, Grails, Agile Development, etc. etc. etc.</description>
	<lastBuildDate>Tue, 17 May 2011 17:02:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mattstine.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Matt Stine&#039;s Blog &#187; spring</title>
		<link>http://mattstine.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mattstine.com/osd.xml" title="Matt Stine&#039;s Blog" />
	<atom:link rel='hub' href='http://mattstine.com/?pushpress=hub'/>
		<item>
		<title>The State of the Art in Dependency Injection: Rod Johnson</title>
		<link>http://mattstine.com/2007/12/15/the-state-of-the-art-in-dependency-injection-rod-johnson/</link>
		<comments>http://mattstine.com/2007/12/15/the-state-of-the-art-in-dependency-injection-rod-johnson/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 15:06:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[thespringexperience2007]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=52</guid>
		<description><![CDATA[This was a truly fascinating talk. If you ever wanted to learn the entire history and landscape of dependency injection (DI), this was your opportunity. I really didn&#8217;t realize how deep of a topic DI really is. According to Rod, DI had its beginnings in 2002, in the Interface 21 Framework that was born from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=52&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This was a truly fascinating talk. If you ever wanted to learn the entire history and landscape of dependency injection (DI), this was your opportunity. I really didn&#8217;t realize how deep of a topic DI really is.</p>
<p>According to Rod, DI had its beginnings in 2002, in the Interface 21 Framework that was born from his seminal work, <a href="http://www.amazon.com/Expert-One-One-Design-Development/dp/1861007841"><span style="font-style:italic;">Expert One-on-One J2<span class="blsp-spelling-error" id="SPELLING_ERROR_0">EE</span> Design and Development</span></a>. In the beginning, DI was done solely through setter injection (SI), with external <span class="blsp-spelling-error" id="SPELLING_ERROR_1">metadata</span> (usually in XML). 2003 gave us Spring 0.9, which had the same DI model, but added <span class="blsp-spelling-error" id="SPELLING_ERROR_2">FactoryBeans</span> for indirection and proxy-based <span class="blsp-spelling-error" id="SPELLING_ERROR_3">AOP</span> (enabling among other things, declarative transaction management). With Spring, DI was always just one enabler of a complete enterprise solution. Contrast that with <a href="http://www.picocontainer.org/"><span class="blsp-spelling-error" id="SPELLING_ERROR_4">PicoContainer</span></a>, also arriving on the scene in 2003, which was an ultra-lightweight DI-only container. <span class="blsp-spelling-error" id="SPELLING_ERROR_5">PicoContainer</span> brought us several innovations, including constructor injection, automatic resolution by type, and an attempt to dispense with external configuration.</p>
<p>Rod then discussed the Pros and Cons of Constructor Injection (CI). On the Pro side, we see that CI is great for immutable objects, can be used with existing code, enforces that the necessary dependencies are provided at object construction, and allows developers to dispense with methods like <span style="font-weight:bold;font-style:italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_6">afterPropertiesSet</span>()</span>. On the Con side, there are no default arguments in Java, which forces us to ALWAYS provide all of the necessary dependencies, constructor overriding can be somewhat messy, and constructor <span class="blsp-spelling-corrected" id="SPELLING_ERROR_7">argument</span> names are not usually available through reflection, which forces us to depend on argument order for dependency resolution.</p>
<p>Spring 1.0, which arrived in late 2003, incorporated some of <span class="blsp-spelling-error" id="SPELLING_ERROR_8">PicoContainer&#8217;s</span> innovation: CI, &#8220;<span class="blsp-spelling-error" id="SPELLING_ERROR_9">Autowiring</span>&#8221; by type and by name, as well as the ability to mix CI and SI. Here Rod reflected on <span class="blsp-spelling-error" id="SPELLING_ERROR_10">Spring&#8217;s</span> pragmatic philosophy, whereby they are more than willing to incorporate the good ideas that others had first.</p>
<p>Spring 1.1 brought us method injection, a unique Spring feature, which solved the problem of long-lived managed objects which depend on short-lived objects. It also brought us Factory Methods. You now had the ability to create objects through invoking static factory methods or instance methods on other beans.</p>
<p>With the finalization of the <a href="http://java.sun.com/products/ejb/docs.html"><span class="blsp-spelling-error" id="SPELLING_ERROR_11">EJB</span> 3.0 standard</a> in May 2006, several new ideas became available in the world of DI: annotation-based DI, annotations for callback methods (e.g. <span style="font-weight:bold;font-style:italic;">@<span class="blsp-spelling-error" id="SPELLING_ERROR_12">PostConstruct</span></span>), scanning for annotations without any external configuration needed for a deployment unit, and field injection (<span class="blsp-spelling-error" id="SPELLING_ERROR_13">FI</span>). These <span class="blsp-spelling-error" id="SPELLING_ERROR_14">EJB</span> standard brought with it a new philosophy &#8211; that annotations are a superior model and that externalization should be a second-class citizen. The Pros of this standard? One big one &#8211; no configuration is necessary for simple cases. The Cons? Rod listed several: resources could only be injected from <span class="blsp-spelling-error" id="SPELLING_ERROR_15">JNDI</span>, no CI, limited control over object <span class="blsp-spelling-error" id="SPELLING_ERROR_16">lifecycle</span>, unsuitability for fine-grained object graphs, effectively <span class="blsp-spelling-corrected" id="SPELLING_ERROR_17">usable</span> ONLY with annotations, as the XML configuration option is so verbose, and it isn&#8217;t just DI &#8211; it brings along with it enforcement of many obsolete <span class="blsp-spelling-error" id="SPELLING_ERROR_18">EJB</span> concepts (such as bean instance pooling).</p>
<p>Spring 2.0 arrived in late 2005 with its own share of innovations: integration with <a href="http://www.eclipse.org/aspectj/"><span class="blsp-spelling-error" id="SPELLING_ERROR_19">AspectJ</span></a>, the ability to inject <span style="font-style:italic;">anything</span> with an <span class="blsp-spelling-error" id="SPELLING_ERROR_20">AspectJ</span> aspect via <span style="font-style:italic;"><span style="font-weight:bold;">@Configurable</span></span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_21">namespaces</span> to provide an XML-based <span class="blsp-spelling-error" id="SPELLING_ERROR_22">DSL</span> for external configuration, the <span style="font-style:italic;"><span style="font-weight:bold;">@Required</span></span> annotation, and <span class="blsp-spelling-error" id="SPELLING_ERROR_23">pluggable</span> scopes to manage the object <span class="blsp-spelling-error" id="SPELLING_ERROR_24">lifecycle</span>. About that same time, <span class="blsp-spelling-error" id="SPELLING_ERROR_25">JBoss</span> Seam introduced many strange ideas (that I didn&#8217;t quite grasp from Rod&#8217;s explanation): <span class="blsp-spelling-error" id="SPELLING_ERROR_26">bijection</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_27">outjection</span>, and subversion of control.</p>
<p>Some additional players on the field include Spring Java <span class="blsp-spelling-error" id="SPELLING_ERROR_28">Config</span>, which is a <span class="blsp-spelling-error" id="SPELLING_ERROR_29">DSL</span> for configuration in Java, <a href="http://code.google.com/p/google-guice/">Google <span class="blsp-spelling-error" id="SPELLING_ERROR_30">Guice</span> 1.0</a>, and the <a href="http://jcp.org/en/jsr/detail?id=299"><span class="blsp-spelling-error" id="SPELLING_ERROR_31">JSR</span>-299 Web Beans spec</a>, which Rod described as &#8220;<span class="blsp-spelling-error" id="SPELLING_ERROR_32">blogware</span>&#8221; in that there is currently no available implementation.</p>
<p>Finally we got to Spring 2.5, released last month. Rod didn&#8217;t have his slides printed or available on the web (<span class="blsp-spelling-error" id="SPELLING_ERROR_33">argh</span>!), so about this time my hand was really hurting from taking furious notes, and I simply gave up. Fortunately, most of what Rod covered was redundant from some of the other sessions, so I&#8217;ll have or will blog about it later. About the only thing I really don&#8217;t have good notes on is Spring Java <span class="blsp-spelling-error" id="SPELLING_ERROR_34">Config</span>, which he discussed pretty extensively. If you want to learn more about it, check out <a href="http://www.springframework.org/javaconfig">http://www.springframework.org/javaconfig</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=52&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/12/15/the-state-of-the-art-in-dependency-injection-rod-johnson/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>Ajax Integration Guide for 2008: Jeremy Grelle</title>
		<link>http://mattstine.com/2007/12/14/ajax-integration-guide-for-2008-jeremy-grelle/</link>
		<comments>http://mattstine.com/2007/12/14/ajax-integration-guide-for-2008-jeremy-grelle/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 20:40:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[thespringexperience2007]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=51</guid>
		<description><![CDATA[This talk looked really exciting going in. Jeremy is a member of the Spring Web Products team and the lead of Spring Faces, as well as a member of the JSF 2.0 Expert Group. He describes himself as the resident Ajax freak at SpringSource. Jeremy began by discussing the current Ajax landscape, highlighting what he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=51&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This talk looked really exciting going in. Jeremy is a member of the Spring Web Products team and the lead of Spring Faces, as well as a member of the <span class="blsp-spelling-error" id="SPELLING_ERROR_0">JSF</span> 2.0 Expert Group. He describes himself as the resident Ajax freak at <span class="blsp-spelling-error" id="SPELLING_ERROR_1">SpringSource</span>. Jeremy began by discussing the current Ajax landscape, highlighting what he believes are the important features a successful framework must deliver, and then identifying the frameworks he considers to be the cream of the crop. No surprises here on the list: Prototype/<span class="blsp-spelling-error" id="SPELLING_ERROR_2">Scriptaculous</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_3">jQuery</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_4">YUI</span>, Ext, and <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Dojo</span>. He then gave a brief high-level overview of each framework &#8211; I really didn&#8217;t learn anything new here, as I&#8217;ve been following these frameworks for quite awhile. He mentioned the commonality that all of these frameworks are about more than asynchronous client-server communication &#8211; they&#8217;re about improving your client-side code and user experience. See Dion&#8217;s May 2007 comment that Ajax &#8220;was never about the acronym &#8211; it&#8217;s about building killer websites.&#8221; What is good about all of these frameworks is that you can use all of them in an unobtrusive manner and progressively enhance your <span class="blsp-spelling-error" id="SPELLING_ERROR_6">UI</span>. This gives you the ability to only <span class="blsp-spelling-error" id="SPELLING_ERROR_7">Ajaxify</span> what you need and also get graceful degradation.</p>
<p>In the second portion of his talk, Jeremy talked about connecting to Spring. I was really hoping that the &#8220;goods&#8221; would be delivered here. He started by mentioning <span class="blsp-spelling-error" id="SPELLING_ERROR_8">DWR</span>, which I think is a really nice framework. It merited 2 slides and no demo (even though there was a slide mentioning a demo). I don&#8217;t think Jeremy really cares for it or <span class="blsp-spelling-error" id="SPELLING_ERROR_9">GWT</span>, as he sort of lumped them together and didn&#8217;t mention them again. I do appreciate his point that neither really allows you to harvest any existing controlling infrastructure that we may have built using Spring <span class="blsp-spelling-error" id="SPELLING_ERROR_10">MVC</span> or another framework.</p>
<p>Jeremy then moved into what he considers the better way to do it, which is the progressive enhancement I mentioned above. He took the existing Spring Booking <span class="blsp-spelling-error" id="SPELLING_ERROR_11">MVC</span> + Web Flow example application and <span class="blsp-spelling-error" id="SPELLING_ERROR_12">ajaxified</span> portions of it. He did this using an interesting combination of Apache Tiles, some Javascript &#8220;pseudo-<span class="blsp-spelling-error" id="SPELLING_ERROR_13">AOP</span>&#8221; he lifted from the <span class="blsp-spelling-error" id="SPELLING_ERROR_14">SpringFaces</span> project, and a bit of <span class="blsp-spelling-error" id="SPELLING_ERROR_15">Dojo</span>. It seemed to work really well, but it wasn&#8217;t immediately clear how this type of technology was going to be made available to us as developers. He said something along the lines of &#8220;you don&#8217;t have to be using <span class="blsp-spelling-error" id="SPELLING_ERROR_16">JSF</span> to use this Javascript, so we probably need to change the name to something else.&#8221; I hope they figure out soon so I can get my hands on it. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>He closed by briefly discussing <span class="blsp-spelling-error" id="SPELLING_ERROR_17">REST&#8217;s</span> place in the future of Spring Web. The ideal scenario, according to Jeremy, is that we will be able to request different representations of the same resource. For example, we could request HTML for full page display or partial DOM updates, and <span class="blsp-spelling-error" id="SPELLING_ERROR_18">JSON</span> for intelligent widgets like the <span class="blsp-spelling-error" id="SPELLING_ERROR_19">Dojo</span> table.</p>
<p>It looks like a lot of exciting things will happen in 2008. I hope I don&#8217;t have to wait too long.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=51&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/12/14/ajax-integration-guide-for-2008-jeremy-grelle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s New in Spring 2.5? : Juergen Hoeller</title>
		<link>http://mattstine.com/2007/12/14/whats-new-in-spring-25-juergen-hoeller/</link>
		<comments>http://mattstine.com/2007/12/14/whats-new-in-spring-25-juergen-hoeller/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 20:20:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[thespringexperience2007]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=50</guid>
		<description><![CDATA[This was my second talk of TSE 2007. I have to admit I chose it by process of elimination &#8211; none of the second session talks particularly jumped out and grabbed me like Chris Richardson&#8217;s talk. Juergen is the project lead for the Spring Framework, so he was the obvious choice to give this talk. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=50&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This was my second talk of TSE 2007. I have to admit I chose it by process of elimination &#8211; none of the second session talks particularly jumped out and grabbed me like Chris Richardson&#8217;s talk.</p>
<p>Juergen is the project lead for the Spring Framework, so he was the obvious choice to give this talk. Juergen split it up into three sections:
<ol>
<li>Platforms</li>
<li>Annotation Configuration</li>
<li>AspectJ Support</li>
</ol>
<p>To break down part one as quickly as possible, Spring supports virtually EVERYTHING. You get JDK 1.4 all the way to Java 6, including all of the new API&#8217;s in Java 6. It fully supports Java EE 5 while remaining backward compatible all the way to J2EE 1.3.  You can now deploy a Spring ApplicationContext as a RAR file, and you also get full JCA 1.5 support (if you want to know what that means, don&#8217;t ask me <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). Quite notable was the fact that they have worked with IBM to support WebSphere&#8217;s proprietary transaction manager. Also interesting was Spring&#8217;s continuing strong support for OSGi as an alternative enterprise runtime.</p>
<p>The annotation configuration part of the talk was quite fascinating. I&#8217;m something of an annotations junkie &#8211; I have to be careful about that. At any rate, it was so good that I was interested enough to attend Juergen and Mark Fisher&#8217;s later talk that was completely dedicated to the subject. I&#8217;ll leave the details for my entry on that talk.</p>
<p>The final portion, on AspectJ support, was equally fascinating. The first new feature was the ability to advise specific beans by name rather than by type using AspectJ. This was made even sweeter by the fact that you can use pattern matching in your <span style="font-style:italic;font-weight:bold;"></span> definition.  Very exciting was the ability to do AspectJ load-time weaving, meaning you can use the power of AspectJ at runtime without involving the AspectJ compiler. Unfortunately, this isn&#8217;t available across all appservers. I didn&#8217;t get a chance to ask and comfirm, but it seems that JBoss (our primary appserver) does not support this. GlassFish, Weblogic, OC4J, and Tomcat were all mentioned as being able to handle it.</p>
<p>The most interesting part of this talk for me was the ability to annotate a class as <span style="font-weight:bold;font-style:italic;">@Configurable</span>, and then do dependency injection on it even thought it isn&#8217;t managed by Spring. You could do this in Spring 2.0, but you had to use the AspectJ compiler. Now, with load-time weaving, you can do this at runtime! I really could have used this recently when I wanted to inject a single dependency into a class that was really overkill to manage as a Spring bean. Since I&#8217;m using Spring 2.5 in this project, I can go back and try this feature. Exciting!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=50&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/12/14/whats-new-in-spring-25-juergen-hoeller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
	</channel>
</rss>
