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

Создайте файл web.xml для использования во всех проектах веб-приложений.

Я разрабатываю несколько веб-приложений в Eclipse Mars 2, используя java 1.7. Я создаю файлы с помощью Maven и тестирую их с помощью плагина jboss (WildFly). Каждый из них использует файл web.xml и разделяет 90% своей логики. Все они используют Spring, все они используют одну и ту же конфигурацию сеанса, одни и те же фильтры и т. д. Разница заключается в проверках авторизации и ролях безопасности.

Недавно мне пришлось сделать несколько обновлений, и мне было тяжело обновлять все web.xml по отдельности. Я ищу решение для определения родительского или основного файла "web.xml", в котором содержится вся общая логика, а затем вставки небольших конкретных частей. Какие варианты у меня есть?

29.06.2016

Ответы:


1

Я бы переместил как можно больше из web.xml в аннотации к классам. Например, в фильтре вы можете сделать что-то вроде:

import javax.servlet.Filter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

@WebFilter(filterName = "TimeOfDayFilter",
urlPatterns = {"/*"},
initParams = {
    @WebInitParam(name = "mood", value = "awake")})
public class TimeOfDayFilter implements Filter {

(взято из здесь)

Таким образом, вы перенесли большую часть традиционной конфигурации, которая выполняется в файле web.xml, в класс Java. То же самое можно сделать с сервлетами.

Обратите внимание, что это не всегда правильный ответ. В фильтрах, например, вы можете только упорядочивать их (то есть иметь цепочку фильтров), если вы используете web.xml. Но чем больше вы сможете отказаться от web.xml, тем лучше.

29.06.2016
  • Что касается порядка фильтров: вы говорите, что все фильтры выполняются, но порядок является случайным / определяется контейнером сервлета? Или вы имеете в виду, что будет работать только один фильтр? если последнее то какое? 29.06.2016
  • Порядок не определен - в web.xml фильтры запускаются в том порядке, в котором они объявлены. С аннотациями это происходит случайно. 29.06.2016
  • Новые материалы

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

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

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

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

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

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

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