2017-02-03 3 views
1

Итак, я провел исследование различных слоев весеннего приложения, и до сих пор для моего первого весеннего приложения я думаю, что я проделал очень хорошую работу. Я смущен тем, куда класть класс FileController. Возможно, это даже не контроллер, а больше сервис, я не уверен. Может быть, это просто плохая идея, и я должен просто использовать что-то вроде Spring. Я просто не думаю, что мне нужна эта масштабируемость. Я думаю, что самое сложное, что я могу сделать, это прочитать и написать файл excel с максимальным количеством 5000 строк. Контроллер файла ниже я бы расширил, чтобы читать и писать как текстовые, так и .xls-файлы. Должен ли он быть контроллером и оставаться в каталоге контроллера веб-приложения весны mvc или должен ли он быть сервисом и внутри каталога службы или должен быть bean-компонентом и каким-либо другим каталогом? Контроллер файла будет доступен когда-либо только объектом службы, который будет вызываться контроллером Spring MVC через сообщение или запрос на получение. Я думаю, что моя неопытность действительно сияет здесь.Где разместить контроллер файла в приложении весны

В основном, какую аннотацию следует использовать: @Controller, @Bean, @Service?

Я прочитал, что аннотация @Controller в основном используется только для сопоставлений запросов. Но было бы разумно иметь контроллеры, которые не были основаны на Интернете.

Должен ли я использовать Spring Batch?

пример класса

public class FileController { 

    List<String> readFile(String filename) { //some impl } 
    String readFile(String filename) { //some impl }  

    void writeFile(List<String> content) { //some impl } 
    void writeFile(String content) { //some impl } 

    void close() { //some imple } 

} 

Я также думал о том, просто добавив чтение и запись в файл в методе, который он используется, но я подумал, что это плохой подход, так как у меня есть возможность надобости логики в будущем, СУХИЕ.

+0

Почему бы не использовать @Component? – VPK

ответ

3

@Controller аннотация используется для beans, которые сопоставляют методы с URI и HTTP mehtod. Такие бобы обычно расположены поверх веб-слоя.

Поскольку ваш боб не будет доступен из Интернета, не может быть @Controller. По моему мнению, это услуга. Поэтому просто переименуйте его в FileService и отметьте его @Service.

Смежные вопросы