package com.dk.foundation.engine.datasource; import com.dk.foundation.engine.springcontext.SpringContextHolder; import org.apache.ibatis.mapping.DatabaseIdProvider; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration; import org.mybatis.spring.boot.autoconfigure.MybatisProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ResourceLoader; import javax.annotation.Resource; import javax.sql.DataSource; import java.util.List; /** * Created by duguk on 2018/1/8. */ @Configuration @EnableConfigurationProperties({MybatisProperties.class}) public class MybatisConfiguration extends MybatisAutoConfiguration{ final static Logger logger = LoggerFactory.getLogger(MybatisConfiguration.class); public MybatisConfiguration(MybatisProperties properties, ObjectProvider<Interceptor[]> interceptorsProvider, ResourceLoader resourceLoader, ObjectProvider<DatabaseIdProvider> databaseIdProvider, ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider) { super(properties, interceptorsProvider, resourceLoader, databaseIdProvider, configurationCustomizersProvider); } @Bean @Resource @Override public SqlSessionFactory sqlSessionFactory(DataSource myBatisDataSource) throws Exception { logger.info("-------------------- sqlSessionFactory init ---------------------"); return super.sqlSessionFactory(myBatisDataSource); } }