我在.properties文件中有ftp连接属性,并且有以下spring bean代码。
<bean id="ftpConnectionFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="${ftp.host}"/>
<property name="port" value="${ftp.port}"/>
<property name="username" value="${ftp.username}"/>
<property name="password" value="${ftp.password}"/>
</bean>
上面的方法可以使用Web应用程序和占位符配置中的属性文件。但我想要的是将这些属性保存在服务器中,让我们说tomcat context.xml文件。
我有使用这个工厂的spring集成。
<int-ftp:outbound-channel-adapter id="ftpOutbound"
channel="ftpChannel"
remote-directory="${ftp.remoteDir}"
remote-file-separator="\"
session-factory="ftpConnectionFactory"
/>
有没有办法可以在服务器中外部化这些属性并使用jndi查找。对于数据源,我目前正在这样做。但我不知道如何为会议工厂做这件事。我想这样做的原因是隐藏密码和其他细节。
答案 0 :(得分:1)
您可以使用PropertyPlaceholderConfigurer,如下所示
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:external.properties</value>
</property>
</bean>
在5.8.2 Customizing configuration metadata with a BeanFactoryPostProcessor和Spring PropertyPlaceholderConfigurer Example
上查看更多示例答案 1 :(得分:1)
如果Tomcat可以正确地将对象绑定到context.xml
的JNDI,那么从JNDI查找中获取对该对象的访问没有区别,就像对DataSource
那样。
请显示,您如何从Spring DataSource
开始,以及如何配置ftpConnectionFactory
,我会尽力帮助您。