Commit a89c95a0 authored by haocao's avatar haocao
Browse files

sharding-jdbc-spring-boot-starter 2th version.

parent 85fb33cf
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
package io.shardingjdbc.spring.boot;

import io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration;
import io.shardingjdbc.core.api.config.ShardingRuleConfiguration;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Sharding jdbc spring boot properties.
 *
 * @author caohao
 */
@ConfigurationProperties(prefix = "sharding.jdbc.config")
@Getter
@Setter
public class ShardingProperties {
    
    private ShardingRuleConfiguration sharding;
    
    private MasterSlaveRuleConfiguration masterslave;
}
+40 −0
Original line number Diff line number Diff line
package io.shardingjdbc.spring.boot.masterslave;

import io.shardingjdbc.core.api.MasterSlaveDataSourceFactory;
import io.shardingjdbc.spring.boot.util.EnvironmentAwareUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

/**
 * Spring boot master slave rule configuration.
 *
 * @author caohao
 */
@Configuration
@EnableConfigurationProperties(SpringBootMasterSlaveRuleConfigurationProperties.class)
public class SpringBootMasterSlaveConfiguration implements EnvironmentAware {
    
    @Autowired
    private SpringBootMasterSlaveRuleConfigurationProperties properties;
    
    private Map<String, DataSource> dataSourceMap = new HashMap<>();
    
    @Bean
    public DataSource dataSource() throws SQLException {
        return MasterSlaveDataSourceFactory.createDataSource(dataSourceMap, properties.getMasterSlaveRuleConfiguration());
    }
    
    @Override
    public void setEnvironment(final Environment environment) {
        EnvironmentAwareUtil.setDataSourceMap(dataSourceMap, environment);
    }
}
+13 −0
Original line number Diff line number Diff line
package io.shardingjdbc.spring.boot.masterslave;

import io.shardingjdbc.core.yaml.masterslave.YamMasterSlaveRuleConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Master slave rule configuration properties.
 *
 * @author caohao
 */
@ConfigurationProperties(prefix = "sharding.jdbc.config.masterslave")
public class SpringBootMasterSlaveRuleConfigurationProperties extends YamMasterSlaveRuleConfiguration {
}
+40 −0
Original line number Diff line number Diff line
package io.shardingjdbc.spring.boot.sharding;

import io.shardingjdbc.core.api.ShardingDataSourceFactory;
import io.shardingjdbc.spring.boot.util.EnvironmentAwareUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

/**
 * Sharding jdbc spring boot configuration.
 *
 * @author caohao
 */
@Configuration
@EnableConfigurationProperties(SpringBootShardingRuleConfigurationProperties.class)
public class SpringBootShardingConfiguration implements EnvironmentAware {
    
    @Autowired
    private SpringBootShardingRuleConfigurationProperties properties;
    
    private Map<String, DataSource> dataSourceMap = new HashMap<>();
    
    @Bean
    public DataSource dataSource() throws SQLException {
        return ShardingDataSourceFactory.createDataSource(dataSourceMap, properties.getShardingRuleConfiguration());
    }
    
    @Override
    public void setEnvironment(final Environment environment) {
        EnvironmentAwareUtil.setDataSourceMap(dataSourceMap, environment);
    }
}
+13 −0
Original line number Diff line number Diff line
package io.shardingjdbc.spring.boot.sharding;

import io.shardingjdbc.core.yaml.sharding.YamlShardingRuleConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Sharding rule configuration properties.
 *
 * @author caohao
 */
@ConfigurationProperties(prefix = "sharding.jdbc.config.sharding")
public class SpringBootShardingRuleConfigurationProperties extends YamlShardingRuleConfiguration {
}
Loading