Nano Hash - криптовалюты, майнинг, программирование

Архитектура RESTful, Spring против Java EE

Я пытаюсь принять решение об архитектурном решении для некоторых новых проектов, которые я создаю.

Эти проекты должны быть мультиплатформенными, мобильными, планшетными, настольными и т. д. Таким образом, причина выбора RESTful API (json) для бэкэнда / сервера.

Я работаю над Java EE в течение долгого времени, поэтому в данный момент экспериментирую со Spring и Java EE 6, но обе они кажутся довольно простыми, Spring, похоже, имеет гораздо больше конфигурации и слоев.

Я смотрел на Spring 3.1 Rest vs Java EE 6 Resteasy/Jersey.

Все было довольно легко настроить, Spring я использовал @EnableWebMvc и новые httpMessageConverters и т. д. RestEasy/Jersey

В RestEasy/Jersey кажется, что содержимое, возвращаемое веб-службой, может быть определено запросом (json/xml/html...). То же самое в Spring?

Любые другие советы также будут очень полезны,

Спасибо


Ответы:


1

Большим преимуществом Spring перед другими фреймворками является возможность заменить почти все компоненты по умолчанию своими собственными.

В вашем случае ContentNegotiationViewResolver, вероятно, подойдет. Это позволяет вам по умолчанию определять запрошенный передаваемый тип по заголовку принятия, по параметру URL-адреса формата или по расширению (например, .json/.xml)

См. следующие примеры и пояснения: http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.html

23.02.2012
  • Это не преимущество перед Java EE. В Java EE это можно сделать естественным образом без необходимости менять местами какие-либо классы. Я не согласен, что это какое-то преимущество. Его можно даже считать плохим дизайном. 14.09.2017

  • 2

    Да, возвращаемый тип данных может быть изменен в Spring.

    Вы можете либо использовать заголовок accept запроса, либо указать параметр вместе с запросом.

    См. этот предыдущий ответ.

    23.02.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..