2016-10-18 199 views
2

我試圖使用Freemarker模板引擎發送HTML格式的電子郵件。 我不得不在多項服務中這樣做。 在一項服務中,freemarker工作正常,但不在另一項服務中。 但與Freemarker相關的代碼實際上是相同的。 的Freemarker配置自動裝配失敗

@Autowired 
private Configuration freeMarkerConfig; 

自動裝配不服務於一體的工作,但在另一個。 自動裝配出現在一個層次結構(例如控制器autowires服務,服務autowires一個MailService的,MailService的autowires另一個組件,該組件的freemarker autowires ... 我不能找出如何解決這個 錯誤堆棧跟蹤:

Exception encountered during context initialization - cancelling refresh attempt: 
    org.springframework.beans.factory.UnsatisfiedDependencyException: 
    Error creating bean with name 'userController': 
    Unsatisfied dependency expressed through field 'userService': 
    Error creating bean with name 'userService': 
    Unsatisfied dependency expressed through field 'mailService': 
    Error creating bean with name 'mailServiceImpl': 
    Unsatisfied dependency expressed through field 'mailMessages': 
    Error creating bean with name 'mailMessages': 
    Unsatisfied dependency expressed through field 'freeMarkerConfig': 
    No qualifying bean of type [freemarker.template.Configuration] found for dependency [freemarker.template.Configuration]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [freemarker.template.Configuration] found for dependency [freemarker.template.Configuration]: expected at least 1 bean which qualifies as autowire candidate for this dependency. 

因爲我使用spring-boot 1.4.0,所以沒有必要提供更多的配置,或者我錯了嗎?所以我沒有任何進一步的xml和java配置freemarker ..我沒有配置它,因爲沒有必要配置任何其他服務,我使用freemarker。

回答

2

由於我使用的是spring-boot 1.4.0,因此不需要提供更多的配置,或者我錯了嗎?所以我沒有任何進一步的xml也沒有java 配置freemarker ..我沒有配置它,因爲沒有 需要配置其他服務,我使用freemarker的任何東西。

除非您使用自動設置配置Freemarker引擎的初始項目,否則您需要創建一個項目。事情是這樣的:

@Configuration 
public class MyConfiguration { 
    @Bean 
    freemarker.template.Configuration freeMarkerConfig() { 
     return someConfigBeanInstantiatedHere; 
    } 
} 

This看起來像,設置了Freemarker的爲你啓動項目一個很好的參考。

+1

這對我很有用,非常感謝。但是仍然會感興趣,爲什麼freemarker可以在另一個項目中工作,而沒有配置。另外freemarker.templates.Configuration構造函數似乎不推薦使用。有沒有更新的配置Freemarker的方法? – lunatikz

+0

也適用於我... –

相關問題