gpt4 book ai didi

java - 通过字段 'freemarkerConfig' 表达的不满足的依赖关系

转载 作者:行者123 更新时间:2023-11-30 01:53:22 25 4
gpt4 key购买 nike

我想使用 Apache Freemaker 发送电子邮件我尝试过:

@Service
public class EMailSender {

@Autowired
private Configuration freemarkerConfig;

public void sendMail(String to, String subject, String content) {
try { freemarkerConfig.setClassForTemplateLoading(this.getClass(), "/templates");

EmailRegistrationModel obj = new EmailRegistrationModel();
obj.setMailSubject("Test");

Map<String, Object> model = new HashMap<String, Object>();
model.put("title", "Some name");
obj.setModel(model);

String data = geFreeMarkerTemplateContent(model);
helper.setText(data, true);

mailSender.send(message);
} catch (MessagingException ex) {
ex.printStackTrace();
}
}

private String geFreeMarkerTemplateContent(Map<String, Object> model){
StringBuffer content = new StringBuffer();
try{
content.append(FreeMarkerTemplateUtils.processTemplateIntoString(
freemarkerConfig.getTemplate("emails_activate.html"), model));
return content.toString();
}catch(Exception e){
System.out.println("Exception occured while processing fmtemplate:"+e.getMessage());
}
return "";
}
}

配置对象:

public class EmailRegistrationModel {       
private String mailContent;
private Map<String, Object> model;
....
}

当我部署代码时,我得到:

Error creating bean with name 'EMailSender': Unsatisfied dependency expressed through field 'freemarkerConfig'; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'freemarker.template.Configuration' available: expected single matching bean but found 2: getFreeMarkerConfiguration,freeMarkerConfiguration

你知道我该如何解决这个问题吗?我想我需要添加一些 freemarker 配置?你能给我一些建议吗?

最佳答案

问题不在于您需要很少的 Freemarker 配置,而是需要两个。特别注意异常消息的最后部分:

No qualifying bean of type 'freemarker.template.Configuration' available: expected single matching bean but found 2: getFreeMarkerConfiguration,freeMarkerConfiguration

Spring Boot 已经附带了 FreeMarkerAutoConfiguration 。很可能您还提供了手动定义的另一个,您可以验证一下吗?

请坚持查看 application.properties 中的 Freemarker 部分或者换句话说:使用 Spring Boot 的 spring.freemarker.* 属性配置您的应用程序。

关于java - 通过字段 'freemarkerConfig' 表达的不满足的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55314413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com