有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Springbean值中使用正则表达式

我有一个Springbean,它接受一个带有用户名和密码的ftp服务器url

<bean id="ftp" class="com....XYZ">
   <property name="url" value=""> /
</bean>

该值有3个部分:ftpusername、ftpserver和ftp密码。我想从属性文件和${ftpusername}中获取ftpusername和ftpserver,然后添加一个特殊字符,如“#”,然后附加服务器${ftpserver},然后添加“&;”然后通过从下面的另一个bean获取密码来追加密码

<bean id="ftpPass">
<property name="pass" value="com...LMNPassword.getPassword()"
</bean>

如何将上面bean ftp中的属性url的值设置为value= "${ftpUSername}+'#'+ ${ftpServer} + '&' + ftpPass"


共 (1) 个答案

  1. # 1 楼答案

    您可以使用Spring表达式语言。但属性文件中的属性不能直接从表达式访问,因此需要额外的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 + '&amp;' + ftpPass.pass}" />
    </bean>
    

    另一个选项是将普通值设置到ftp bean中,并在init方法中构造url