package jef.database.datasource;
import java.util.Collection;
import java.util.Collections;
import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils;
/**
* 在Spring的配置中找寻Bean的DataSoruceLookup
* @author jiyi
*
*/
public class SpringBeansDataSourceLookup extends AbstractSpringBeanLookup<DataSource> implements DataSourceLookup{
public DataSource getDataSource(String dataSourceName) {
if(isIgnorCase())dataSourceName=StringUtils.lowerCase(dataSourceName);//忽略大小写
if(cache!=null){
DataSource datasource=cache.get(dataSourceName);
if(datasource!=null)return datasource;
}
cache=getCache();
DataSource datasource=cache.get(dataSourceName);
return datasource;
}
public String getDefaultKey() {
if(cache==null){
cache=getCache();
}
if(cache.size()==1){
return cache.keySet().iterator().next();
}
return defaultBeanName;
}
public Collection<String> getAvailableKeys() {
if (cache == null) {
cache=getCache();
}
return Collections.unmodifiableCollection(cache.keySet());
}
}