java - 在基于 java 的配置中设置 Bean 属性,无需构造函数或 setter

标签 java spring spring-mvc velocity

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

我在设置 VelocityConfigurer 时遇到问题。

根据 Spring 文档,我应该创建 bean,如下所示:

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

我目前有以下相关配置,但似乎找不到注入(inject)“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 的配置吗?

最佳答案

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

所以应该可以设置它:

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

关于java - 在基于 java 的配置中设置 Bean 属性,无需构造函数或 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20728602/

相关文章:

java - mybatis 3 selectkey inside foreach

java - 如何在不同的 Activity 中使用相同的 ArrayList(Android 和 Java)

java - 如何使这个非阻塞服务器成为多线程的?

java - 返回响应后,RequestContextHolder 中设置的属性丢失

javascript - 向 Spring MVC Controller 发送多部分请求时出现 400 错误请求

html - Bootstrap cssStyle 标签忽略了 Spring MVC 3.2.8

spring - spring webflow中无效的_eventId

java - 手工为java项目制作划分的主测试结构

Spring 无法处理返回泛型内部 Kotlin 类的方法

java - RestTemplate 如何解析响应