2009-05-07 3 views
1

Ich bin wieder mit Frühling vertraut und betrachte Abhängigkeitsinjektion und IoC in einer Weise, die ich vorher nicht habe.Saiten mit Frühling bauen?

Wenn ich eine Zeichenfolge erstellen möchte, sagen Sie für einen Dateinamen, und ich habe bereits eine Spring-Bean, die das Verzeichnis enthält, was ist der beste Weg, um den Dateinamen anzuhängen?

Das Schreiben einer Bean, um das selbst zu tun, scheint ziemlich trivial zu sein, aber ich würde denken, dass Spring die Möglichkeit haben könnte, dies irgendwo durch seine API zu tun. Wenn das möglich ist, wie?

Just for Kicks, hier ist die Umsetzung der ziemlich einfache Bohne ....

public class MySimpleStringAppender { 

    private final StringBuffer myString = new StringBuffer(); 

    public MySimpleStringAppender(List<String> myStrings) { 
     for (String string : myStrings) { 
      myString.append(string); 
     } 
    } 

    public String getMySimpleString() { 
     return myString.toString(); 
    } 

} 

und konfiguriert mit ...

<bean id="filename" class="MySimpleStringAppender"> 
    <constructor-arg ref="filenameStrings"/> 
</bean> 

<util:list id="filenameStrings"> 
    <ref bean="directory"/> 
    <value>filename.txt</value> 
</util:list> 

<bean id="directory" class="java.lang.String"> 
    <constructor-arg value="C:/myDirectory/"/> 
</bean> 

So, während es nicht viel Arbeit ist oder Code, würde ich denken, dass etwas verfügbar wäre, so dass ich das überhaupt nicht schreiben müsste.

Antwort

1

Nö noch nie so etwas gesehen. Sie können auch Ihr XML einfacher machen, indem Sie all das zu einem kombinieren:

<bean id="filename" class="MySimpleStringAppender"> 
    <constructor-arg> 
     <list> 
     <value>C:/myDirectory</value> 
     <value>filename.txt</value> 
     </list> 
    </constructor-arg> 
</bean> 

Aber das wussten Sie wahrscheinlich schon.

1

Vielleicht "c:/mydirectory" definieren als Eigenschaft und zu tun:

<bean id="filename" class="java.lang.String"> 
    <constructor-arg value="${dir}/filename.txt"/> 
</bean> 

Wird es funktionieren?

+0

(Vergessen Sie nicht einzufügen oder fügen Sie zu Ihrer Konfiguration hinzu) – toolkit