Заполните поле File Spring Bean с помощью аннотации - PullRequest
11 голосов
/ 18 июня 2011

Можно ли сделать что-то вроде этого:

<property name="template" value="file:/some/resource/path/myTemplate.txt" />

с помощью аннотаций без создания пользовательских аннотаций и заполнения поля с помощью отражения? Это нельзя сделать с помощью @Value, потому что оно работает только со строками ...

Если нет, то как лучше всего обрабатывать пользовательские аннотации bean-компонента Spring и соответственно инициировать bean-компонент?

Ответы [ 3 ]

26 голосов
/ 18 июня 2011

Использовать ресурс в качестве поля.

@Value("file:/some/resource/path/myTemplate.txt")
Resource template;

Вы также можете использовать URI стиля classpath:.

Тогда, если вам нужно получить файл, используйте template.getFile()

0 голосов
/ 24 июля 2011

@ Value ( "$ {файл: /some/resource/path/myTemplate.txt}") Шаблон ресурса;

Спасибо за пробуждение, ответ с высоким голосом имел "templatePath" без каких-либо ссылок и теперь исправлен - см. Комментарии.

Javadoc или официальные документы по использованию ресурсов @Value было сложно найти в начале 2011 года, и до сих пор не найдено, как найти ресурсы, вводимые через spel @Value, используя classpath, file, url: Выражения SPEL , Ресурсы файловой системы , @ Значение , @ PropertyResource

0 голосов
/ 18 июня 2011

Если я понимаю вопрос, вы пытаетесь установить значение поля типа File? Не могли бы вы просто ввести имя файла с помощью @Value, а затем при необходимости создать объект File в коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...