Есть ли у Spring аннотация для чтения содержимого пути к классу в строку? - PullRequest
0 голосов
/ 12 января 2019

Я хочу прочитать содержимое файла в пути к классам (в resources/) до String. Есть ли у Spring удобная аннотация для этого?

Что-то вроде:

public class MyClass {
    @Resource("classpath:data.txt")
    private String data;
}

Есть ли что-то подобное весной?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Аннотация @ Value используется для вставки значений свойств в переменные, обычно в строки или простые примитивные значения. Вы можете найти больше информации здесь .

Если вы хотите загрузить файл ресурса, используйте ResourceLoader , например:

@SpringBootApplication
public class ExampleApplication implements CommandLineRunner {

    @Autowired
    private ResourceLoader resourceLoader;

    @Autowired
    private CountWords countWords;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Count words : " + countWords.getWordsCount(resourceLoader.getResource("classpath:file.txt")));

    }
}

Другое решение, вы можете использовать @ Value , например:

@SpringBootApplication
public class ExampleApplication implements CommandLineRunner {


    @Value("classpath:file.txt")
    private Resource res;

    @Autowired
    private CountWords countWords;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Count words : " + countWords.getWordsCount(res));

    }
}
0 голосов
/ 12 января 2019
@Value("classpath:data.txt")
private Resource data;

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

Я думаю, что Весна возлагает на вас эту ответственность, потому что в противном случае она была бы очень хрупкой; во время доступа / чтения ресурса могут происходить разные операции ввода-вывода, что приводит к IOException.

Кроме того, преобразования файла в строку не так часто используются в Spring.

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