/** * */ package jframe.mybatis.ds; import java.util.Properties; import javax.sql.DataSource; import jframe.core.plugin.annotation.InjectService; import jframe.core.plugin.annotation.Injector; import jframe.datasource.MultiDataSourceService; import org.apache.ibatis.datasource.DataSourceFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author dzh * @date Jul 17, 2015 5:36:38 PM * @since 1.0 */ @Injector public class JfameMultiDataSourceFactory implements DataSourceFactory { static final Logger LOG = LoggerFactory .getLogger(JfameMultiDataSourceFactory.class); @InjectService(id = "jframe.service.multidatasource") static MultiDataSourceService multiDataSource; private String id; /* * (non-Javadoc) * * @see * org.apache.ibatis.datasource.DataSourceFactory#setProperties(java.util * .Properties) */ @Override public void setProperties(Properties props) { id = props.getProperty("id"); } /* * (non-Javadoc) * * @see org.apache.ibatis.datasource.DataSourceFactory#getDataSource() */ @Override public DataSource getDataSource() { try { return multiDataSource.getDataSourceService(id).getDataSource(); } catch (Exception e) { LOG.error(e.getMessage()); } return null; } }