MyBatis的VFS是用来封装不同的底层文件系统。因为不同的执行/部署环境,可能获取问文件的方式不同。比如war包、jar包、Spring包(比如resource路径)。所以MyBatis允许用户自己指定VFS的是实现。
//org/apache/ibatis/io/VFS.java
public static final Class<?>[] IMPLEMENTATIONS = { JBoss6VFS.class, DefaultVFS.class };
@Bean(name = "mysqlSSFactory")
public SqlSessionFactory mysqlTypeSqlSessionFactory(@Qualifier("mysqlDS") DataSource sourceDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(sourceDataSource);
sessionFactory.setTypeHandlersPackage(HANDLER_PACKAGE);
sessionFactory.setVfs(SpringBootVFS.class);
sessionFactory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
return sessionFactory.getObject();
}