Я хочу отправлять электронные письма, используя 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? Можете ли вы дать мне совет?