我正在尝试使用 FreeMarker 创建 html 以使用 Spring 发送电子邮件。我不想从文件中访问模板,而是从数据库中获取它(Mongo,但任何数据库都是相同的)。我目前的配置如下:
<!-- freemarker config -->
<bean id="freemarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
<property name="preTemplateLoaders">
<list>
<ref bean="databaseTemplateLoader"/>
</list>
</property>
</bean>
<bean name="databaseTemplateLoader" class="com.myapp.service.MongoDBToFreeMarkerTemplateLoader"/>
当我自动装配配置对象时,我得到以下异常:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [freemarker.template.Configuration] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.
我使用以下代码进行自动装配:
@Autowired
Configuration freeMarkerTemplateEngine;
如果没有依赖注入(即使用“new Configuration()”并手动设置自定义加载程序时),它可以正常工作,但显然我想在这里坚持使用 DI。
为了做到这一点,我还需要定义什么吗?我已经关注了这个博客,它没有说需要其他任何东西。