2009-05-07 2 views
1

Я вспоминаю весну и смотрю на инъекцию зависимостей и IoC так, как раньше.Строить строки с весной?

Если я хочу построить строку, скажем для имени файла, и у меня уже есть компонент Spring, который содержит каталог, как лучше всего добавить имя файла?

Написание бина для этого сам кажется довольно тривиальным, но я думаю, что Spring может уже иметь возможность сделать это где-то, хотя его API. Если это возможно, как?

Просто для Пинки, вот реализация довольно простой боб ....

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(); 
    } 

} 

и сконфигурированный с ...

<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> 

Таким образом, хотя это не очень много работы или код, я думаю, что будет что-то доступное, поэтому мне не нужно было бы писать это вообще.

ответ

1

Нет, никогда не видел такого. Вы также можете сделать свой XML проще, объединив все это в одном:

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

Но вы, вероятно, уже знали это.

1

Возможно определить "C:/MyDirectory" как собственность и сделать:

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

Будет ли она работать?

+0

(не забудьте включить <контекст: свойство-placeholder /> или добавить в вашу конфигурацию) – toolkit

Смежные вопросы