华人澳洲中文论坛

热图推荐

    Hotswap之Mybatis热部署

    [复制链接]

    2022-10-24 12:33:21 18 0

    场景:
    名目早期,假如波及到Mybatis,每次写XML或SQL时,或多或少会泛起语法过错,假如没有热部署,每次只能从新启动,修正起来很耗时,而IDEA在debugger模式下是能够完成类或XML文件热部署的,但无奈更新mybatis的瓜葛,因此需求添加更新mybatis瓜葛的逻辑就可以完成热部署。
    从新编译Mapper.class 或 Mapper.xml 文件


    从新编译文件
    一定是在debugger模式下能力从新加载
    更新Mybatis瓜葛
    查看源码找出Mybatis中症结的对象
    这里经过 bean对象找到代理对象,从而从代理对象中获得sqlSession症结的类是Configuration, SQL语句也是存储在该对象傍边分两种场景,一是注解场景,一是xml场景,从新加载的形式纷歧样


    找出症结对象、删除缓存、从新加载
    经过源码知道
    mappedstatements 、 resultMaps 这两个map中的value中包孕id, 而key部份没有类名前缀不合适用key删除,只能经过value中的id来查问并删除,且不同的key可能value是同样的。


    删除statement 和 resultMap


    判别资源key删除
    从新加载 xml 首要一点是 xml文件的门路,该门路存储在 loadedResources, 经过文件名后半部份能够肯定该文件。所以没有重名的 xml 是很症结的一部份


    从新加载xml文件
    最初
    后续该功用将增补到SequenceOutline这个插件傍边。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题25

    帖子32

    积分153

    图文推荐