package org.dayatang.datasource4saas.springconf; import org.dayatang.datasource4saas.DataSourceRegistry; import org.dayatang.datasource4saas.SaasDataSource; import org.dayatang.datasource4saas.TenantService; import org.dayatang.datasource4saas.dscreator.C3P0DataSourceCreator; import org.dayatang.datasource4saas.dsregistry.DataSourceCreator; import org.dayatang.datasource4saas.dsregistry.JdbcDataSourceRegistry; import org.dayatang.datasource4saas.tenantservice.ThreadLocalTenantService; import org.springframework.context.annotation.Bean; import javax.sql.DataSource; @org.springframework.context.annotation.Configuration public class SpringConfiguration { @Bean public DataSource dataSource() { return new SaasDataSource(tenantService(), dataSourceRegistry()); } @Bean public TenantService tenantService() { return new ThreadLocalTenantService(); } @Bean public DataSourceRegistry dataSourceRegistry() { return new JdbcDataSourceRegistry(dataSourceCreator()); } @Bean public DataSourceCreator dataSourceCreator() { return new C3P0DataSourceCreator(); } }