Внедрение ресурса пути к классам в Spring 3 bean
В моем bean-компоненте Spring 3 есть свойство типа Resource, которое должно быть вставлено со ссылкой на файл в classpath. Я надеюсь использовать аннотацию @Value, приведенную ниже, чтобы добиться этого.
public class TestBean
{
@Value("classpath:/abc/student/test.sql")
private Resource SqlFile;
...
}
Но свойство всегда нулевое. Я подтвердил, что файл sql был развернут в целевом каталоге maven (он находится в target/classes/abc/student/test.sql).
Самые близкие решения, которые я мог найти в Google, были это и это, которые детализируют способ XML, тогда как я заинтересован в том, чтобы делать это с помощью аннотаций.
Цените любые указания на то, что может быть здесь не так.
Спасибо,
Виджай
Ответы
Ответ 1
Если это будет жестко закодировано, то просто
private Resource sqlFile = new ClassPathResource("/abc/student/test.sql");
В противном случае вы действительно будете
@Value("${some.property}")
private Resource sqlFile;
и я считаю, что при вводе значения свойства будет применен правильный PropertyEditor.
Ответ 2
Если вы не хотите указывать свойство, это должно сработать
@Value("${:classpath:json/inventory.json}")
Resource inventory;