我在前端编程时相当年轻。我在使用Javascript / react等方面感觉有点舒服,但我真的不知道任何服务器端(我知道tom tomcat /服务器,但没有什么重要意义)。我的团队也是这样说的
我有一个我试图理解的网络应用程序。对于开发,我使用Intellij运行(我认为是两个tomcat服务器?)一个应用程序,以及该应用程序的UI,两个服务器端(我想这是因为我看到两个本地主机)
长话短说,运行这些需要很长时间(都需要+105秒)。即使我可以通过同时运行来节省时间,我也想尝试理解为什么这么长时间。
通过控制台,它在我的关卡中都是乱码,但是通过计时器,我看到两个动作正在进行,大约需要70秒
2017-08-03 00:56:21 9556 [main] INFO o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6743e411: startup date [Thu Aug 03 00:56:21 SGT 2017]; root of context hierarchy
2017-08-03 00:56:27 9556 [main] INFO o.s.b.f.s.DefaultListableBeanFactory - Overriding bean definition for bean 'dataSource' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari; factoryMethodName=dataSource; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Tomcat; factoryMethodName=dataSource; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]]
.
.
.
2017-08-03 00:56:45 9556 [main] INFO o.h.h.i.QueryTranslatorFactoryInitiator - HHH000397: Using ASTQueryTranslatorFactory
DmeInitializer.initialize Application initialized
2017-08-03 00:57:51 9556 [main] INFO c.f.f.c.s.t.pools.RulesManager - Compiling processing rules for Compare 26
如果它也很重要,基于日志,
2017-08-03 00:56:29 9556 [main] INFO o.a.catalina.core.StandardEngine -
Starting Servlet Engine: Apache Tomcat/8.5.4
任何人都可以就如何减少这些的运行时间提出任何建议吗?它非常重要,因为我在UI中所做的任何更改都不会被反映,除非我重新启动UI servlet
问题的另一部分是我不熟悉Gradle(某种项目管理器似乎与servlet配置相关),这使得事情变得更加困难。在intellij中,除了定义工作空间和一些自定义配置(通过VM选项)之外,它看起来像是在定义某种类。我打算找到并研究一下,虽然我想它不会导致任何加速
答案 0 :(得分:0)
半解决了我的问题 我按照这个链接: https://dzone.com/articles/spring-boot-application-live-reload-hot-swap-with (必须改变第一步做同样的事情,但用gradle即添加
compile("org.springframework.boot:spring-boot-devtools")
到gradle.build(正确的,不是任何随机的)。
然后在完成剩下的步骤后,将此行添加到application.properties:
spring.thymeleaf.cache= false
那么在运行tomcat servlet时,不要只运行它们,你需要在调试模式下运行它们
完成上述所有操作后,其工作原理如下: 当servlet在intellij中运行时 - 改变您的UI代码 - 保存它(在我的情况下,我使用的是notepad ++而不是intellij - 回到intellij(只需将窗口置于焦点) - 然后返回浏览器并刷新浏览器
现在不是每次我做一次更改都等待100秒,我只需要在开始时等待100秒,然后它