我有一个Spring Boot应用程序.我添加了很多依赖项(不幸的是,看起来我需要所有这些依赖项)并且启动时间上升了很多.只SpringApplication.run(source, args)
需要10秒钟.
虽然这与"使用"相比可能没那么多,但我很不高兴它需要那么多,主要是因为它打破了开发流程.此时应用程序本身相当小,所以我假设大部分时间都与添加的依赖项有关,而不是与应用程序类本身有关.
我假设问题是类路径扫描,但我不知道如何:
我假设这个:
会加快速度,但现在甚至都没有进行分类.我在Spring Boot本身看到了一些其他的努力,例如:
但这看起来特定于Tomcat.
本文:
虽然针对集成测试,建议使用lazy-init=true
,但是我不知道如何使用Java配置将这个应用于Spring Boot中的所有bean - 这里有任何指针吗?
任何(其他)建议都会受到欢迎.
我创建了一个裸骨Maven项目,除了之外完全是空的pom.xml
.
有了这个pom(请注意parent
元素已注释掉):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springboot-test</groupId>
<artifactId>springboot-test</artifactId>
<version>1.0.0-SNAPSHOT</version>
<!-- <parent> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-parent</artifactId> -->
<!-- <version>1.1.9.RELEASE</version> -->
<!-- </parent> -->
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
样品运行:
$ mvn exec:java -Dexec.mainClass=test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building springboot-test 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.3.2:java (default-cli) @ springboot-test ---
[WARNING] Warning: killAfter is now deprecated. Do you need it ? …
Run Code Online (Sandbox Code Playgroud) 正如Eclipse文档所建议的那样,我有一个org.eclipse.core.resources.IncrementalProjectBuilder
编译每个源文件的文件,我也有一个org.eclipse.ui.editors.text.TextEditor
可以编辑每个源文件的文件.每个源文件都编译到自己的编译单元中,但它可以引用其他(已编译的)源文件中的类型.
这个重要的两项任务是:
为了实现这一点,我想在内存中存储所有已编译类型的表示(以下称为"类型存储").
我的问题有两个:
上面的任务1由构建器执行,而任务2由编辑器执行.因此,他们都可以访问这种类型的商店,我应该创建一个他们都可以访问的静态存储,还是Eclipse提供了一种更简洁的方法来处理这个问题?请注意,在需要时实例化构建器和编辑器是eclipse,而不是我.
打开eclipse时,我不想重建整个项目,所以我可以重新填充我的类型存储.到目前为止,我最好的解决方案是将这些数据保存在某处,然后从那里重新填充我的商店(也许在项目打开时).这是其他增量编译器通常如何做到这一点的吗?我相信Java的方法是使用一个特殊的解析器,从类文件中有效地提取这些数据.
任何见解都会非常感激.这是我的第一个DSL.
eclipse-plugin incremental-linking incremental-build incremental-compiler
我想用下一个字符替换字符串的每个字符,最后一个应该成为第一个.这是一个例子:
abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
应成为:
bcdefghijklmnopqrstuvwxyza
Run Code Online (Sandbox Code Playgroud)
是否可以在不使用替换功能的情况下进行26次?