ZPY博客

SpringBoot配置热部署后mybatis报错this web application instance has been stopped already. Could not load [mybatis/mapper/]

目前这个项目快完了,才想起来弄下热部署,也是为以后项目方便吧,按照网上的教程

<!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
            <scope>runtime</scope>
        </dependency>

 

但问题是按上面4步配完后随便修改一个类的代码时,控制台自动重启时会报错

this web application instance has been stopped already. Could not load [mybatis/mapper/]

很明显问题是重启时没有找到mybatis的xml文件的路径。

百度了很多,有的说不能用spring-boot-devtools,得用springloaded,这个试了,是不报错了,但是根本不会自动重启,pass。。。

还有的说要在pom文件里的<build>里加上mybatis的配置文件的路径的配置,感觉有点靠谱的,但还是没用。。。

最后说在application.yml里加上mapper-locations指定mybatis的classpath。。这个最让我无语,因为我本身项目里就加了这个啊。。起始以为这个也不行,但是后来仔细看了下具体的路径配置,发现有一点区别。

我的配置是

mapper-locations: classpath:mybatis/mapper/*.xml

但网上有的例子里这个classpath后面有一个*号。。我抱着试一试的心态加上了这个*后就好了!!!!

正确写法如下:

mapper-locations: classpath*:mybatis/mapper/*.xml

网上暂时还没有我这种情况的,希望有同样情况的能解决你们的问题!