2017-02-08 11 views
1

Springboot 1.4.4では、VelocityEngineをBeanとして直接使うことができました。 私はapplication.propertiesで行った設定:Velocity with Springboot 1.5.x

spring.velocity.properties.resource.loader=jar 
spring.velocity.properties.jar.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 
spring.velocity.properties.jar.runtime.log.logsystem.class=org.apache.velocity.runtime.log.SimpleLog4JLogSystem 
spring.velocity.properties.jar.runtime.log.logsystem.log4j.category=velocity 
spring.velocity.cache=true 
spring.velocity.charset=UTF-8 

Springbootの1.5.xのは、もはや何の速度のサポートはありません。 Springboot 1.5.xでこの設定を統合する最も良い方法は何ですか?

私はすでに依存関係を追加しました:

<dependency> 
    <groupId>org.apache.velocity</groupId> 
    <artifactId>velocity</artifactId> 
    <version>1.7</version> 
</dependency> 

とBeanを作成しました:

@Bean 
VelocityEngine velocityEngine(){ 
    return new VelocityEngine(); 
} 

しかし、プロパティが欠落しています。

@Autowired 
ConfigurableEnvironment configurableEnvironment; 

私はプロパティを解析することができますが、それは間違って感じています。

+2

春にVelocityではなくFreeMarkerを使用することを推奨します。 VelocityではなくFreeMarkerを使用するようにコードを変更できるかどうかを確認できます。 FMテンプレートはVelocityテンプレートとほぼ同じですので、変更するのは難しいことではありません。 – Jesper

答えて

2

私はFreeMarkerを使うためにJespersの助言に従います。 プロパティを変更する必要があり、spring.velocity.properties削除:

を順番誰かが技術を切り替えるが、簡単な解決策として、ここでは、Springboot 1.5.xをに移動したいことができない場合は、私の質問に答えるために

@Bean 
VelocityEngine velocityEngine(){ 
    Properties properties = new Properties(); 
    properties.load(this.getClass().getResourceAsStream("/application.properties")); 
    return new VelocityEngine(properties); 
} 

一つの重要な欠点はと、次のとおりです。

resource.loader=jar 
jar.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 
jar.runtime.log.logsystem.class=org.apache.velocity.runtime.log.SimpleLog4JLogSystem 
jar.runtime.log.logsystem.log4j.category=velocity 
jar.resource.loader.cache=true 
input.encoding=UTF-8 

追加のプロパティは、Beanの作成しましたそのソリューションではVelocityエンジン用にプロパティファイル名を変更せずにプロパティファイル名を変更することはできません。そのため、Springbootの柔軟性が失われます。