我有一个带有用户名和密码的ftp服务器URL的spring bean。
<bean id="ftp" class="com....XYZ">
<property name="url" value=""> /
</bean>
该值有3个部分,ftpusername,ftpserver和ftp密码。我想从属性文件和$ {ftpUsername}获取ftpusername和ftpserver然后添加一个特殊字符说'#'然后添加服务器$ {ftpServer}然后添加“&amp;”然后通过从下面的其他bean获取密码来附加密码
<bean id="ftpPass">
<property name="pass" value="com...LMNPassword.getPassword()"
</bean>
如何将bean ftp中的属性url的值设置为value= "${ftpUSername}+'#'+ ${ftpServer} + '&' + ftpPass"
答案 0 :(得分:0)
您可以使用Spring Expression Language。但是属性文件中的属性不能直接从表达式访问,因此需要额外的bean
<bean id="ftpPass" >
<property name="pass" value="com...LMNPassword.getPassword()"/>
</bean>
<bean id="ftpUsername" class="java.lang.String" >
<constructor-arg value="${ftpUsername}"/>
</bean>
<bean id="ftpServer" class="java.lang.String" >
<constructor-arg value="${ftpServer}"/>
</bean>
<bean id="ftp">
<property name="url" value="#{ftpUsername + '#' + ftpServer + '&' + ftpPass.pass}" />
</bean>
另一种选择是将普通值设置为ftp bean并在init方法中构造url