- Какова цель интерфейса
Краткий ответ: внедрение зависимостей
Длинный ответ: вы видите, мы не хотим конкретной реализации и сильной связи в нашем приложении,Интерфейсы служат этой цели, с или без Spring.Весна - это основа, которая активно использует это.С помощью интерфейса вы можете написать несколько реализаций одной логики, определив контракт (методы интерфейса), который описывает, что является параметром и типом возврата, но вы не указали, как это делается.Что дает вам большую гибкость в написании различных бинов Spring (классов Impl), которые делают это.List
в Java - это интерфейс, тогда у вас есть реализации, такие как LinkedList
и ArrayList
Как следует структурировать проект Spring MVC
Краткий ответ: в любом случае вам нравится
Длинный ответ: Используете ли вы Spring MVC в качестве сервера API или обслуживаете представления, такие как JSP / Thymeleaf?Если бы я писал API, у меня были бы контроллеры (специфичные для точки входа и пружины функции), фасады (бизнес-логика на чистом Java без классов каркаса) и DAO / Services (в зависимости от того, поступают ли данные из базы данных или стороннего API, возможно, оба) как минимум.Для MVC у меня были бы почти аналогичные настройки, но в зависимости от вашего соглашения с вашим провайдером API, я мог бы отказаться от уровня обслуживания и сосредоточиться больше на стороне Javascript.В наши дни я бы посоветовал не использовать JSP / Freemarker.Они намного медленнее в разработке, чем, скажем, сервер React + API на любом языке.