1

Я решил сделать небольшое веб-приложение на Spring Boot. Планировщик задач для пользователей. Соответственно сделал 2 Entity класса User и Task, сделал запись в БД с использованием Hibernate, настроил связи manytoone, onetomany между пользователями и задачами, написал контроллер. И у меня возник вопрос, какой хороший тон для разработки веб-приложений на Spring 5. Я видел несколько реализаций взаимодействия с БД, кто-то реализует Service классы в которых поднимает SessionFactory для Hibernate и работает с БД через них, кто то использует CrudRepository или JpaRepository (ну в зависимости от задачи конечно), и работает через них. В некоторых случаях реализуют DTO классы, иногда обходятся без них. Но я не могу понять, какая информация и подход является устаревшим на данный момент (некоторые статьи от 2015 года), а что сохранило свою актуальность. Как сейчас в 2020 принято делать веб-приложения? Что обязательно должно быть в полноценном веб-приложении, помимо Controller и Entity? Какой подход к веб-разработке на Spring сейчас актуален? В идеале я бы хотел просто услышать более или менее общую инструкцию типа "После того как ты сделал Controller и Entity, нужно сделать сделать свой Repository унаследовав JpaRepository(опционально, может быть CrudRepository), потом сделать Service классы для каждого Entity и еще какой то класс для обслуживания связей между сущностями, <Какая-то технология или методы/классы/подход> сейчас считается плохим тоном, их не нужно использовать, лучше пользуйся ...."

  • Нет верного ответа, реализуйте версию того, что хотите получить, затем выкиньте её и реализуйте по новой, сделав это 50 раз, что-то выработается конкретно у вас. – Komdosh Jan 16 '20 at 08:20
  • Но есть же какие то общепринятые практики при разработке? Есть паттерны, которые говорят как решить какую-то задачу в определенных случаях, есть принципы SOLID и прочее и считается хорошим тоном этим пользоваться. Мне кажется и здесь должен быть подход, который считается хорошим тоном? Или писать как хочешь, потом выдавать это за свой стиль программирования? – user239737 Jan 16 '20 at 09:29
  • Все зависит от детальной бизнес-логики приложения, потребностей и от ваших предпочтений. Дать общий ответ здесь невозможно. – Tankred Jan 16 '20 at 12:17
  • Ок. Тогда небольшой оффтоп вопрос. Я правильно понимаю, что могу для выборки из БД пользоваться SessionFactory Hibernate, реализовав DAO и в них использовать SessionFactory, а могу пользоваться Repository интерфейсами Spring, сделать Service интерфейсы и классы для работы с БД и не трогать SessionFactory Hibernate вообще? И если бы я не пользовался Spring Boot, то мне бы надо было еще настроить EntityManagerFactory и DataSource, ну конкретно в контексте работы с БД? Или я вообще не прав сейчас? – user239737 Jan 17 '20 at 09:58
  • Думаю примерно так надо начинать. – Roman C Jan 19 '20 at 13:38

0 Answers0