如上面的重启vs重载部分所述,重启功能是通过使用两个类加载器来实现的。对于大多数应用程序来说,这种方法运行良好,但有时会导致类加载问题。
默认情况下,IDE中打开的任何项目都将使用“重启”类加载器加载,而任何常规的.jar
文件将使用“基本”类加载器加载。如果您工作在多模块项目中,而不是将每个模块都导入IDE,那么那你可能需要自己进行一些设置。要做到这一点,你可以创建一个META-INF/spring-devtools.properties
文件。
spring-devtools.properties
文件可以包含restart.exclude.
和restart.include.
前缀属性。include
元素是应该被拉入“重启”类加载器中的项,而exclude
元素是应该被推进“基本”类加载器中的项。该属性的值是一个会被应用于类路径的正则表达式。
例如:
restart.exclude.companycommonlibs=/mycorp-common-[\\w-]+\.jar
restart.include.projectcommon=/mycorp-myproj-[\\w-]+\.jar
所有属性的键值都必须是唯一的。只要属性以
restart.include
或restart.exclude
开头,都会被纳入进来。
类路径中的所有
META-INF/spring-devtools.properties
都将被加载。您可以将文件打包到项目中,也可以打包到项目使用的库中。