Внедрение ресурса пути к классам в bean-компонент Spring 3

В моем bean-компоненте Spring 3 есть свойство типа Resource , которое следует внедрить со ссылкой на файл в пути к классам. Я использую аннотацию @Value, как показано ниже, чтобы добиться этого.

public class TestBean
{
    @Value("classpath:/abc/student/test.sql")
    private Resource SqlFile;
    ...
}

Но свойство всегда имеет значение null. Я подтвердил, что файл sql был развернут в целевом каталоге maven (он находится в target / classes / abc / student / test.sql).

Ближайшими решениями, которые я мог найти в Google, были this и this , в которых подробно описан способ xml, тогда как я заинтересован в том, чтобы сделать это с помощью аннотаций.

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

Спасибо,

Виджей

31
задан Community 23 May 2017 в 11:52
поделиться

2 ответа

Если это будет жестко запрограммировано, просто

private Resource sqlFile = new ClassPathResource("/abc/student/test.sql");

В противном случае, то, что вы действительно ищете, это

@Value("${some.property}")
private Resource sqlFile;

, и я считаю, что при введении значение свойства, будет применен правильный PropertyEditor.

45
ответ дан 27 November 2019 в 22:27
поделиться

Если вы не хотите указывать свойство, то это должно сработать

@Value("${:classpath:json/inventory.json}")
Resource inventory;
2
ответ дан 27 November 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: