spring整合mybatis的配置类


一、SpringConfig配置类:

@Configuration
@ComponentScan(basePackages = "com.xxx.xxx")
@Import({
          
   MybatisConfig.class,JdbcConfig.class})
public class SpringConfig {
          
   }

二、Mybatis的配置类

@Configuration
public class MybatisConfig {
          
   

    @Bean("pageInterceptor")
    public Interceptor pageInterceptor() {
          
   
        return new PageInterceptor();
    }
    @Bean  // SqlSessionFactoryBean 负责给我们产生sqlSession 知道数据源 ,在创建这个对象的时候指定你的数据源
    public SqlSessionFactoryBean sqlSessionFactoryBean(@Autowired DataSource dataSource, @Autowired @Qualifier("pageInterceptor") Interceptor pageInterceptor) {
          
   
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setPlugins(new Interceptor[]{
          
   pageInterceptor});

        org.apache.ibatis.session.Configuration config = new org.apache.ibatis.session.Configuration();
        // 开启驼峰命名  [mybatis 配置文件操作,settings 标签 配置 ]
        config.setMapUnderscoreToCamelCase(true);
        sqlSessionFactoryBean.setConfiguration(config);
        return sqlSessionFactoryBean;
    }
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
          
   
        MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
        scannerConfigurer.setBasePackage("com.xxx.mapper");
        return scannerConfigurer;
    }
}

三、JDBC配置类

将获取dataSource的方法取出,防止mybatis配置类先进入spring容器,导致出错

@Configuration  // 声明当前类为配置类
@PropertySource(value = "classpath:jdbc.properties")  // 读取属性文件并且加载到spring容器
public class JdbcConfig {
          
   

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.driver}")
    private String driverClassName;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;
    // 构建DruidDataSource  这个数据源是由 阿里巴巴 提供 第三方bean
    @Bean // 把当前方法的返回值对象放入到spring容器中;注意默认使用方法的名字作为对象名称
    public DataSource dataSource(){
          
   
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

四、db.properties

设置properties配置文件的原因是解耦

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/t2?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root
经验分享 程序员 微信小程序 职场和发展