Как правильно писать слой бизнес-логики в spring приложении (целесообразно ли использовать статик методы?)?
Возьмем простой пример. Есть spring-boot приложение, в нём должен быть web-слой, слой бизнес-логики, слой DAO. Слой DAO - запрос к бд, вполне написан, он возвращает табличные сущности по их id-шникам. То есть, в приложении есть пакет dao. Есть пакет web - там лежат контроллеры, которые отвечают на некоторые запросы. К примеру
@GetMapping("/index")
public String index() {
//Здесь некоторый код содержащий бизнес логику
return "Hello from application"; //Здесь какой-то ответ
}
Предположим, мне нужно в вышеперечисленный контроллер добавить некоторую логику обработки. Я её выношу в отдельный пакет, условно logic, где делаю запросы к базам данных, через API dao слоя. В этом слое у меня, к примеру, должно быть извлечение двух полей из БД, проверка их на null, проброс исключения если что-то пойдет не так.
Вопрос: нормальным ли будет стиль сделать static методы в слое бизнес-логики в spring приложении? К примеру, добавить класс
class BusinessLogic{
public static int getData(){
//Запросы к DAO
//Логика обработки
return 100500; //Возврат оответа, на основании логики
}
}
Подразумевается, что из web-слоя дальше будет вызов:
@GetMapping("/index")
public String index() {
BusinessLogic.getData(100500); //Какой-то запрос в слой бизнес-логики
return "Hello from application"; //Здесь какой-то ответ
}
Или стандартный стиль для слоя бизнес-логики какой-то другой?