Подтвердить что ты не робот

Внедрение ресурса пути к классам в 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, тогда как я заинтересован в том, чтобы делать это с помощью аннотаций.

Цените любые указания на то, что может быть здесь не так.

Спасибо,

Виджай

4b9b3361

Ответ 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;