2016-01-25 4 views
3

Моя проблемного очень просто:Как получить доступ к свойствам пружины загрузки из шаблона Freemarker

В моем веб-приложение весна-загрузки, у меня есть некоторые ENV связанные свойства, передний/на стороне клиента должен знать о (давайте скажем, удаленный URL-адрес CORS для вызова, зависящий от env).

Я правильно определил файлы приложения - {ENV} .properties, и все меканизм для каждого env-реквизита работает нормально.

Вопрос, на который я не могу найти ответ, - это: как вы разрешаете контексту freemarker знать о вашем файле свойств, чтобы иметь возможность вводить их (в частности, в приложение для загрузки весны). Это, вероятно, очень легко, но я не могу найти какой-либо пример ...

Спасибо,

+0

Дубликат этого? http://stackoverflow.com/questions/15302775/how-to-access-a-spring-application-property-in-a-freemarker-template?rq=1 –

+0

Нет, это особенно в весеннем ботинке (он же all-is-configure-automatic-without-ask-ya environ), а не голой весной MVC –

ответ

4

Собираюсь ответить себе:

Самый простой способ пружинного загрузки 1.3 является переопределяет класс FreeMarkerConfiguration:

/** 
* Overrides the default spring-boot configuration to allow adding shared variables to the freemarker context 
*/ 
@Configuration 
public class FreemarkerConfiguration extends FreeMarkerAutoConfiguration.FreeMarkerWebConfiguration { 

    @Value("${myProp}") 
    private String myProp; 

    @Override 
    public FreeMarkerConfigurer freeMarkerConfigurer() { 
     FreeMarkerConfigurer configurer = super.freeMarkerConfigurer(); 

     Map<String, Object> sharedVariables = new HashMap<>(); 
     sharedVariables.put("myProp", myProp); 
     configurer.setFreemarkerVariables(sharedVariables); 

     return configurer; 
    } 
} 
+0

Это полезно, но я спрашиваю себя, есть ли лучшее решение, которое автоматически применяет все свойства из моего приложения .properties дополнительно к вещи, которые я делаю вручную в этом методе – tObi

Смежные вопросы