spring - IntelliJ + Tomcat + Spring-Loaded

我想试用 Spring Source 的“Spring Loaded”类重载代理,Tomcat 通过 IntelliJ 运行。

https://github.com/SpringSource/spring-loaded

我已将 JVM 参数添加到我的 Tomcat 运行配置中,并且我的 web 应用程序启动时没有错误,并且似乎运行正常。

我不太确定如何触发类重新加载。我只需要编译我修改的类吗?我已经尝试过了,但这似乎不起作用。我需要更新 Tomcat 并部署类和资源吗?这似乎也不起作用......?

任何具体的配置细节将不胜感激。

编辑:更多信息,我认为我的问题可能与使用两个模块有关,一个是核心代码库,一个是 webapp。我对两者都使用 Maven,一个配置为 jar 项目,另一个配置为 war 项目。 IntelliJ 为爆战设置 Artifact 以使用 jar 模块的 jar 文件。我尝试切换 Artifact 配置以将 jar 模块的编译输出合并到 WEB-INF/classes 中。现在我在 target/webapp/WEB-INF/class/etc 中看到了 .class 文件。但我不确定如何让 IntelliJ 在编辑特定类文件时更新它。

最佳答案

如果您将以下 jvm 参数(如 springloaded 页面中所述)添加到您的 tomcat 中

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass

你应该没事的。它可能有助于禁用您正在测试的 web 应用程序的 tomcat 中的自动重新加载。例如在您的 server.xml 中:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Context docBase="projekt" path="/projekt" reloadable="false" ...

这确保只有 Spring 加载的类加载器加载更改的类。

https://stackoverflow.com/questions/15118681/

相关文章:

java - 使用 mockito 进行 Spring 服务单元测试

java - 如何在 Hibernate 中使用面向对象编程?

spring - 如何在集成测试阶段使用 Spring 嵌入式数据库初始化脚本?

java - Spring Data Repository Autowiring 失败

java - 如何覆盖 Spring 3.1 @PropertySource 以设置 IgnoreR

spring - 使用 Spring Security 的 OAuth 2.0 中的 resourc

java - 由于缺少 EmbeddedServletContainerFactory bean,无

java - 使用spring for android休息POST对象

java - 如何在 Spring 中构建 SOAP 客户端?

java - 由于 HAL+JSON 媒体类型不明确,无法使用 Spring HATEOAS 执行