• Как правильно обрабатывать запросы в бизнес-приложении?

    BestuseR
    @BestuseR
    .
    Disclaimer: это лишь мой опыт, и мое мнение.
    Я бы рекомендовал почитать вообще про архитектуру Web/Enterprise приложений, и обратить внимание на четырехслойную архитектуру(слои: представлений, сервисы, бизнесс, dao). Картинку и описание этой архитектуры я не нашел, но каждый слой можно прогуглить. Сразу стоит уточнить что слой и уровень это не одно и то же.
    Для изучения также можно смотреть на доклады с видео-конференций, например:

    Также я видел описание архитектуры Skyforge.

    Если посмотреть Ваши шаги, то я бы так расставил обязанности:
    1) (?) сервер приложений (если я правильно понял)
    2) слой сервисов
    3) dao
    4) консистентность к сервисам
    5) бизнесс слой
    6) представления
    Дополнительный свойства обеспечиваются с помощью аспектов (логи, безопасность).
    Обработка ошибок, я бы назвал обработкой исключений, происходит вообще в отдельном месте, и она не относится ни к каким слоям, скорее тоже обеспечивается аспектами.
    Для обеспечения "понятным, легко поддерживаемым, расшияемым и т.д. " необходимо, как ни странно, соблюдать правила Clean Code и т.п. (см. Парадигмы ООП выше).
    Ответ написан
    Комментировать
  • Как сгенерировать 14-ти значное положительное число?

    BestuseR
    @BestuseR
    .
    Вот, вроде правильно и быстро работает... Можно ещё быстрее, ну то такое)
    public static BigInteger generateBigInteger(int length, Random random) {
            StringBuilder builder = new StringBuilder(length);
            builder.append(random.nextInt(9) + 1);
            for (int i = 1; i < length; i++) {
                builder.append(random.nextInt(10));
            }
            return new BigInteger(builder.toString());
        }


    Upd: решения выше в комментариях получше :D
    Ответ написан
    Комментировать
  • Как заставить Spring встраивать интерфейсы?

    BestuseR
    @BestuseR Автор вопроса
    .
    Итак, проблема решилась. Не стандартно, но решилось:
    проблема была в том, что мои dao-реализации не наследовали соответствующие им dao-интерфейсы, и спринг не мог встроить зависимость.

    Этот старый коммит (который делал мой одногрупник, которого я "обучаю"), и он внезапно что-то ослушался, и реализовал не те интерфейсы во всех dao-реализациях, там было:
    public class QuestionTagOracleDaoImplement
    extends AbstractOracleDaoImplement<QuestionTagsEntity, Integer>
    implements QuestionTagOperations, DefaultDao<QuestionTagsEntity, Integer>

    а надо было просто реализовать интерфейс AnswerDao (ctrl+c - ctrl+v при современных ide - абсурд).

    P.S. простите за ничего в себе не несущий вопрос на т.н. Тостере.

    Всем пытавшимся помочь, да или просто читателям, спасибо,
    и удачи :)
    Ответ написан
    Комментировать
  • Пустая страница при обработке ошибок сервера?

    BestuseR
    @BestuseR
    .
    Попробуйте полный путь к файлу на сервере указать, например: /WEB-INF/views/404.html (или где он у вас там)
    Также посмотрите, вы маппите приложение не в корень, а в /application_name можете попробовать ещё /название проекта/404error.html
    Ответ написан
    Комментировать