1、map注入 首先定义一个类 ServerConfig
import java.util.Map;
public class ServerConfig {
private Map<String, FileSource> fileSourceMap;
private Map<String, String> directoryMap;
public Map<String, FileSource> getFileSourceMap() {
return fileSourceMap;
}
public void setFileSourceMap(Map<String, FileSource> fileSourceMap) {
this.fileSourceMap = fileSourceMap;
}
public Map<String, String> getDirectoryMap() {
return directoryMap;
}
public void setDirectoryMap(Map<String, String> directoryMap) {
this.directoryMap = directoryMap;
}
}
2、定义了一个配置文件
<bean id="QH360FtpConfig" class="com.zycfc.rmb.channel.util.FtpConfig">
<property name="user" value="" />
<property name="password" value="" />
<property name="directory" value="" />
<property name="ipAddr" value="" />
<property name="port" value="" />
</bean>
<bean id="QH360ServerConfig" class="com.zycfc.rmb.channel.util.ServerConfig">
<property name="fileSourceMap">
<map>
<!-- 文件上传配置 ftp 使用ftp上传下载文件 -->
<entry key="ftpFileSource">
<bean class="com.zycfc.rmb.channel.util.SFtpFileSource">
<property name="ftpConfig" ref="QH360FtpConfig"/>
</bean>
</entry>
</map>
</property>
<property name="directoryMap">
<map>
<entry key="IMG_OCR_REMOTE" value="upload/XXX/" />
<entry key="IMG_FAC_REMOTE" value="upload/XXX/" />
<entry key="UP_SEND_REMOTE" value="/download/XXX/" />
<entry key="LOCAL_DIR" value="/home/zycfc/XXX" />
</map>
</property>
</bean>
3、1步骤 2步骤 是为了给定义的类 中的map 注入 具体的值
步骤三调用注入的值
ServerConfig serverConfig = (ServerConfig)ringContextHelper.getBean("QH360ServerConfig");
Map<String, FileSource> fptConfigs = serverConfig.getFileSourceMap();
Map<String, String> configs = serverConfig.getDirectoryMap();
SFtpFileSource sfpt = (SFtpFileSource) fptConfigs.get("ftpFileSource");
String localDir = configs.get("LOCAL_IMG_PATH");
String remoteDirOcr = configs.get("IMG_OCR_REMOTE");
String remoteDirFac = configs.get("IMG_FAC_REMOTE");