Cache templates

This commit improves massively class loading performance by caching all
templates used by the generator. GroovyTemplate is now a bean rather than
a private utility.

Templates are cached by default and the cache is disabled automatically
if Devtools is in use (via a check of spring.groovy.template.cache).

Closes gh-288
This commit is contained in:
Stephane Nicoll
2016-09-13 14:34:10 +02:00
parent dd0442b5de
commit 61cc7eb41d
9 changed files with 100 additions and 40 deletions

View File

@@ -18,6 +18,8 @@ package io.spring.initializr.service
import java.util.concurrent.Executor
import io.spring.initializr.metadata.InitializrMetadataProvider
import io.spring.initializr.util.GroovyTemplate
import io.spring.initializr.web.project.LegacyStsController
import org.springframework.boot.SpringApplication
@@ -44,8 +46,9 @@ class InitializrService {
@Bean
@SuppressWarnings("deprecation")
LegacyStsController legacyStsController() {
new LegacyStsController()
LegacyStsController legacyStsController(InitializrMetadataProvider metadataProvider,
GroovyTemplate groovyTemplate) {
new LegacyStsController(metadataProvider, groovyTemplate)
}
@Configuration