Архитектура программного обеспечения: как абстрагировать API портлета - PullRequest
0 голосов
/ 29 января 2011

Мы используем Spring MVC, и мы хотели бы создать Приложение, которое могло бы работать как портлет И как обычное WebApp с той же кодовой базой.

Мы готовы пожертвовать некоторыми функциями портлета и согласиться на общий набор функций.

Есть ли API или методика для этого?

1 Ответ

1 голос
/ 29 января 2011

Если вы используете Spring 2.5 или 3.0, вы можете использовать их аннотации @Controller, предназначенные именно для этой цели, а не расширять классы SpringC AbstractController (которые специфичны для спецификации Servlet или Portlet, которую вы пытаетесь избежать). от).

Выезд http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/portlet.html#portlet-annotation

"Аннотация @Controller указывает, что определенный класс выполняет роль контроллера. Нет необходимости расширять какой-либо базовый класс контроллера или ссылаться на API-интерфейс портлета. Конечно, вы по-прежнему можете ссылаться на специфичные для портлета функции, если вы надо. "

Аннотации @RequestMapping могут быть настроены с различными значениями, которые, я думаю, зависят от того, используете ли вы спецификацию Servlet или Portlet ... так что, если вы все еще сталкиваетесь с какими-либо препятствиями, вы можете попробовать создать класс Java, который реализует всю вашу основную логику и иметь несколько минимальных аннотированных фасадных контроллеров, один для Servlet и один для Portlet, которые просто делегируют ваш основной логический класс.

...