
com.github.nomou.mybatis.SmartSqlSessionFactoryBuilder Maven / Gradle / Ivy
package com.github.nomou.mybatis;
import com.github.nomou.mybatis.binding.SmartMapperRegistry;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* 此类仅仅是为了替换Configuration中用于解析Mapper的{@link org.apache.ibatis.binding.MapperRegistry}.
*
* 通过{@link SmartMapperRegistry#injectIfNecessary(Configuration)}来手动替换.
*
* Note: 对于整合spring只需要通过{@code SqlSessionFactoryBean#setSqlSessionFactoryBuilder}设置即可.
*
* @author vacoor
* @see org.apache.ibatis.binding.MapperRegistry
* @see SmartMapperRegistry
*/
public class SmartSqlSessionFactoryBuilder extends SqlSessionFactoryBuilder {
/**
* smart=true时statement未实现时会自动实现.
*/
private final boolean smart;
/**
* 实例化.
*/
public SmartSqlSessionFactoryBuilder() {
this(true);
}
/**
* 实例化.
*
* smart=true时statement未实现时会自动实现.
*
* @param smart 是否对未实现statement自动实现.
*/
public SmartSqlSessionFactoryBuilder(final boolean smart) {
this.smart = smart;
}
/**
* {@inheritDoc}
*/
@Override
public SqlSessionFactory build(final Configuration configuration) {
if (smart) {
SmartMapperRegistry.injectIfNecessary(configuration);
}
return super.build(configuration);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy