У нас есть веб-приложение для конкретного домена.Под конкретным доменом я подразумеваю, что некоторые значения и поведение жестко запрограммированы и недостаточно универсальны для обработки нового домена.Итак, мы находимся на этапе абстрагирования приложения и делаем его более открытым для нового домена.
Мы используем maven, spring и JSP.Идея состоит в том, чтобы иметь общий проект и один проект на домен, который будет содержать ресурсы.Конечное приложение будет представлять собой комбинацию универсального приложения и одного из ресурсов домена.
Я определил различные элементы, которые нам нужно абстрагировать, и хотел бы узнать лучшие практики для достижения абстракции с помощью Spring.
- Статическая HTML-страница, такая как
contact us
информация.
Текущая реализация представляет собой метод контроллера, связанный со страницей contact.jsp
.
@RequestMapping("/contact.htm")
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) {
return new ModelAndView("contact");
}
Spring ищет страницу contact.jsp
в /WEB-INF/jsp/contact.jsp
.
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean
Я добавил новую зависимость, которая содержит contact.jsp
.В my-resources.jar
у меня есть файл jsp под /WEB-INF/jsp/contact.jsp
. Есть ли способ настроить viewResolver для извлечения файла как ресурса из фляги вместо того, чтобы извлекать файл как File
в файловой системе?
У нас есть переключатель, который позволяет пользователю выбирать между несколькими версиями.Не все версии применяются ко всему домену, поэтому для одного домена будут отображаться только 2 версии, а для другого домена - 4 версии.
Идея заключается в создании файла свойств в my-resources.jar
длянастроить интерфейс.
versions.supported = 2, 3
Каков наилучший способ получить доступ к файлу свойств, поскольку он потребуется почти во всех контроллерах?