Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring Boot+;IntelliJ_Spring_Tomcat_Intellij Idea_Spring Boot - Fatal编程技术网

使用Spring Boot+;IntelliJ

使用Spring Boot+;IntelliJ,spring,tomcat,intellij-idea,spring-boot,Spring,Tomcat,Intellij Idea,Spring Boot,我们有一个基于Spring Boot的产品,并通过嵌入式Tomcat通过可执行war部署,但在开发过程中,我们采用了在托管Tomcat上开发的方法,因此我们的IDE(主要是IntelliJ)将具有热插拔/重新部署支持(而不是循环整个应用程序,这需要一段时间才能启动) 我们最近在我们的项目中添加了springbootstarterwebsocket,托管的Tomcat的类加载器使用嵌入式Tomcat的资源时遇到了问题,并且出现了问题。我们可以通过使用概要文件并将嵌入的lib标记为提供的,,这样就只

我们有一个基于Spring Boot的产品,并通过嵌入式Tomcat通过可执行war部署,但在开发过程中,我们采用了在托管Tomcat上开发的方法,因此我们的IDE(主要是IntelliJ)将具有热插拔/重新部署支持(而不是循环整个应用程序,这需要一段时间才能启动)

我们最近在我们的项目中添加了
springbootstarterwebsocket
,托管的Tomcat的类加载器使用嵌入式Tomcat的资源时遇到了问题,并且出现了问题。我们可以通过使用概要文件并将嵌入的lib标记为提供的
,这样就只有我们的CI构建包含它们,但这样做很容易出错,最多也会有黑客行为


因此,我的问题是:有更好的方法吗?使用Maven插件或runnable类会带来问题,因为Maven插件不会进行热交换,runnable类在查找类路径(如JSP)时遇到问题(希望我们事先切换到Thymeleaf,但下次;)

“更好”开发周期的要求是:

  • 代码热交换-开发时不必重新启动应用程序/服务器(除了更改方法签名之类的内容)

  • 良好的工具支持

  • 简单、可重复的设置--基本上是“签出并运行”


  • 谢谢

    重新加载类不再需要tomcat。使用SpringBoot1.2,您可以调试maven目标SpringBoot:run并重新加载类。
    这在intellij中对我很有用。

    您试用过spring工具套件吗?它非常适合于spring应用程序,特别是spring boot。是的,我们喜欢STS,并且有一些人在使用它。我现在非常喜欢IntelliJ,因为它有非常棒的数据库工具。我刚刚尝试了这个工具,并且工作正常,但是我无法设置断点/使用IDE进行调试。您必须手动配置调试器吗?不,我只是有一个常规的spring boot maven项目,在构建部分添加了spring boot插件。然后启动spring引导:在调试模式下运行目标。然后我可以在代码中设置断点。@PatrickCornelissen您在Windows上吗?因为在Linux上,存在一个关于可执行gradle/maven任务引导运行的pid的问题。它通过fork生成子进程,当您从IDEA停止任务时,它会停止父进程,而不是子进程。因此,端口仍然被它阻塞,当您运行主类时,您必须手动终止它。intelliJ不使用gradle/maven来运行它。但是,即使在使用maven/gradle时,到目前为止,我还没有遇到旧java进程的任何问题,但我正在使用Mac。我再也受不了窗户了;-)