package cc.smtweb.framework.core.db.config;

import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.core.db.jdbc.IdGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

/**
 * 默认数据源
 *
 * @author xkliu
 */
@Configuration
public class DbEngineConfiguration {
    @Value("${smtweb.db.type}")
    private String dbType;
//  @Bean
//  public DataSource dataSource() {
//    return DataSourceBuilder.create().build();
//  }
//
//  @Bean
//  public NamedParameterJdbcTemplate jdbcTemplate(DataSource dataSource) {
//    return new NamedParameterJdbcTemplate(dataSource);
//  }

    /**
     * 产生数据库数据库访问对象 dbEngine
     *
     * @param namedJdbcTemplate Spring框架Jdbc，通过 spring.datasource 配置
     * @param idGenerator       ID生成器对象，思想数据库ID生成
     * @return dbEngine对象
     */
    @Bean
    @ConfigurationProperties(prefix = "smtweb.db.default")
    public DbEngine dbEngine(NamedParameterJdbcTemplate namedJdbcTemplate, IdGenerator idGenerator) {
        System.out.println("create dbEngine=============");
        return new DbEngine(namedJdbcTemplate, idGenerator, dbType);
    }
}
