在没有构造函数或setter的基于java的配置中设置Bean属性

时间:2013-12-22 10:53:43

标签: java spring spring-mvc velocity

我正在尝试设置Velocity模板引擎以与spring-mvc一起使用。 我的项目目前只使用基于java的弹簧配置。

我无法设置VelocityConfigurer

根据Spring文档,我应该按如下方式创建bean:

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
  <property name="resourceLoaderPath" value="/WEB-INF/velocity/"/>
</bean>

我目前有以下相关配置,但似乎无法找到注入“resourceLoaderPath”属性的方法。 VelocityConfigurer类没有相应的setter或构造函数。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.velocity.VelocityConfigurer;

@Configuration
public class AppConfig {

    @Bean
    public VelocityConfigurer velocityConfig() {
        VelocityConfigurer velocityConfigurer = new VelocityConfigurer();
        return velocityConfigurer;
    }
}

如何避免基于.xml的配置?

1 个答案:

答案 0 :(得分:2)

根据javadoc,VelocityConfigurer有一个resourceLoaderPath的setter。 setter继承自VelocityEngineFactory

所以应该可以设置它:

@Bean
public VelocityConfigurer velocityConfig() {
    VelocityConfigurer velocityConfigurer = new VelocityConfigurer();
    velocityConfigurer.setResourceLoaderPath("/WEB-INF/velocity/");
    return velocityConfigurer;
}