Source Code : Bean Injection: Map
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
Bean Injection: Map
File: context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="ftpDownloader" class="FtpDownloader"/>
<bean id="httpDownloader" class="HttpDownloader"/>
<bean id="sftpDownaloader" class="SftpDownloader"/>
<bean id="downloadManager" class="DownloadManager">
<property name="downloaders">
<map>
<entry key="ftp" value-ref="ftpDownloader"/>
<entry key="http" value-ref="httpDownloader"/>
<entry key="sftp" value-ref="sftpDownaloader"/>
</map>
</property>
</bean>
</beans>
File: Main.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
public class Main {
public static void main(String[] args) throws Exception {
XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("context.xml"));
DownloadManager dm = (DownloadManager)xbf.getBean("downloadManager");
String uri = "http://www.java2s.com";
dm.download(uri);
}
}
class DownloadManager {
private static final Pattern URI_PATTERN = Pattern.compile("^([^:]*):/(.*)$");
private Map<String, Downloader> downloaders;
void download(String uri) {
Matcher matcher = URI_PATTERN.matcher(uri);
if (matcher.matches()) {
String scheme = matcher.group(1);
String path = matcher.group(2);
Downloader downloader = this.downloaders.get(scheme);
if (downloader != null) {
downloader.download(path);
}
}
}
public void setDownloaders(Map<String, Downloader> downloaders) {
this.downloaders = downloaders;
}
}
@Component
class SftpDownloader implements Downloader {
public byte[] download(String uri) {
System.out.println("SFTP Downloading " + uri);
return new byte[0];
}
}
@Component
class HttpDownloader implements Downloader {
public byte[] download(String uri) {
System.out.println("HTTP Downloading " + uri);
return new byte[0];
}
}
@Component
class FtpDownloader implements Downloader {
public byte[] download(String uri) {
System.out.println("FTP Downloading " + uri);
return new byte[0];
}
}
interface Downloader {
byte[] download(final String uri);
}
Thank with us