Mybatis花费很长时间扫描配置文件

时间:2019-11-18 14:47:58

标签: multithreading mybatis

我使用的是基于myBatis和Java的配置,而不是基于XML的配置。我想知道是否应该切换到XML文件。我执行以下操作以获取SqlSession对象:

.Union(await s.MemberAdditionalCards
    .Select(a => new AdditionalCard
    {
        CardId = a.CardId
    }).ToListAsync())

我注意到MyBatis扫描指定包中的映射器文件大约需要200-300ms。为了提高效率,我尝试通过惰性初始化技术创建一次此Configuration对象。然后我发现有时sqlSession.selectOne(...)类型查询之类的东西找不到映射器。然后有时候会。

我的问题是我现在没有使用任何形式的依赖项注入,并且现在无法介绍它。我看过的所有文档都是针对Spring Boot人群的,我怀疑它以某种方式管理MyBatis,这样所有初始化操作都只能正确地处理和完成一次,而不是像我在这里那样以每次调用为基础。 / p>

我意识到我无法在多线程环境中使用SqlSession。另一位张贴者说我不能在多线程环境中使用配置。那张海报可能是正确的,但是我在文档中找不到任何可以说出MyBatis对象是线程安全的东西。

我的问题是,我可以在多线程环境中安全地重用哪些对象,以便节省配置扫描时间,还是应该切换到全XML方法?

0 个答案:

没有答案