[picocontainer-scm] [5605] java/2.x/trunk/pico/distribution/src/site/content: some words on named method injection
paul-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5605
Author paul
Date 2010-02-12 15:18:14 -0600 (Fri, 12 Feb 2010)
Log Message
some words on named method injection
Modified Paths
- java/2.x/trunk/pico/distribution/src/site/content/injection.html
- java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html
- java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml
Added Paths
- java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html
Diff
Modified: java/2.x/trunk/pico/distribution/src/site/content/injection.html (5604 => 5605)
--- java/2.x/trunk/pico/distribution/src/site/content/injection.html 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -60,6 +60,10 @@
<td>Fields of a certain name should be injected into</td>
</tr>
<tr>
+ <td>Named Method Injection</td>
+ <td>If method names match other component names, injection happens</td>
+ </tr>
+ <tr>
<td>Typed Field Injection</td>
<td>Fields of a certain type should be injected into</td>
</tr>
Modified: java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html (5604 => 5605)
--- java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -14,7 +14,7 @@
container after instantiation.</p>
<div class="source">
- <pre>public class Apple {
+ <pre>public class FruitBasket {
private Orange orange;
private Pear pear;
private Banana banana;
@@ -26,9 +26,9 @@
<div class="source"><pre>
import static org.picocontainer.injectors.NamedFieldInjection.injectionFieldNames;
pico = new DefaultPicoContainer(new NamedFieldInjection();
-pico.as(injectionFieldNames("orange", "pear", "banana")).addComponent(Apple.class);
+pico.as(injectionFieldNames("orange", "pear", "banana")).addComponent(FruitBasket.class);
// etc
-Apple apple = pico.getComponent(Apple.class);</pre>
+FruitBasket fruitBasket = pico.getComponent(FruitBasket.class);</pre>
</div>
<p>
Yes that's right, there's no constructor needed. It means that for a
@@ -36,7 +36,7 @@
populate the dependency fields.</p>
<p>The component factory for this is a class<strong>
- TypedFieldInjection</strong>. It only handles typed-field
+ NamedFieldInjection</strong>. It only handles named-field
injection for components.</p>
</body>
</html>
Copied: java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html (from rev 5598, java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html) (0 => 5605)
--- java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html (rev 0)
+++ java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>Named Method Injection</title></head>
+<body>
+<h3>Overview</h3>
+
+<p>This is where a component has an empty constructor with
+ dependencies passed in via setters and matching done via the method name (after 'set'). Matches are against named components.</p>
+
+<div class="source">
+ <pre>public class FruitBasket {
+ public void setOrange(String orange) { ... }
+ public void setPear(String pear) { ... }
+ public void setBanana(String banana) { ... }
+ // other methods
+}</pre>
+</div>
+<h3>Usage</h3>
+
+<div class="source"><pre>
+pico = new DefaultPicoContainer(new NamedMethodInjection();
+pico.addConfig("orange" , new Seville());
+pico.addConfig("pear" , new Bartlett());
+pico.addConfig("Banana" , new Cavendish());
+pico.addComponent(FruitBasket.class);
+// etc
+FruitBasket basket = pico.getComponent(FruitBasket.class);</pre>
+</div>
+<p>
+ Yes that's right, there's no constructor needed. It means that for a
+ Unit Test, you cannot simply 'new' the class without some lines of code to
+ populate the dependency fields via setters.</p>
+
+<p>The component factory for this is a class<strong>
+ NamedMethodInjection</strong>. It only handles named-method
+ injection for components.</p>
+</body>
+</html>
Modified: java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml (5604 => 5605)
--- java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml 2010-02-12 21:18:14 UTC (rev 5605)
@@ -25,6 +25,7 @@
<page>typed-field-injection.html</page>
<page>named-field-injection.html</page>
<page>method-injection.html</page>
+ <page>named-method-injection.html</page>
<page>multi-injection.html</page>
<page>composite-injection.html</page>
<page>factory-injection.html</page>
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email