一句话

MyBatis的VFS是用来封装不同的底层文件系统。因为不同的执行/部署环境,可能获取问文件的方式不同。比如war包、jar包、Spring包(比如resource路径)。所以MyBatis允许用户自己指定VFS的是实现。

MyBatis内置实现

//org/apache/ibatis/io/VFS.java
public static final Class<?>[] IMPLEMENTATIONS = { JBoss6VFS.class, DefaultVFS.class };

与Spring的结合


@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();
    }