Spring Aop некоторые обслуживания - PullRequest
1 голос
/ 16 ноября 2011

У меня есть веб-приложение (Spring, Java), взаимодействующее с некоторыми «плагинами» в моей системе (например, отправка электронной почты или сохранение ввода пользователя при необходимости), связь осуществляется с помощью Spring AOP.

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

Что Вы думаете об этом?Какие-нибудь вдохновляющие идеи?

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Если вы ищете в прямой системе событий JVM, стоит посмотреть, как работают Spring Apllication Events.Вы можете начать с org.springframework.context.support.AbstractApplicationContext.В этом классе есть код для публикации событий, регистрации событий и т. Д. Spring также обеспечивает автоматическую регистрацию слушателей события.

1 голос
/ 16 ноября 2011

Посмотрите на систему CDI Event и позвольте вам от нее оторваться.

Вы можете написать свою собственную версию для весны (возможно, не со всеми функциями, но с этим хорошим подходом к обработке).

0 голосов
/ 16 ноября 2011

Я думаю, что первый шаг, который вам нужно сделать, это получить книгу и понять основы паттерна Observer. Я предлагаю вам взглянуть на Head First Design Pattern, отличную книгу для начинающих разработчиков, которой не хватает опыта проектирования.

После того, как у вас появятся базовые знания об этом, вы можете рассмотреть возможность использования Java Observer / Observable, связанных вручную интерфейсов или использование Spring Application Application. (Но просто бессмысленно просить людей научить вас всей схеме здесь, это то, что вам нужно прочитать, прежде чем спрашивать)

(И, честно говоря, это действительно очень плохая идея - плести вашу логику с помощью АОП, как вы упомянули, это не только сложно поддерживать, но и злоупотребляет АОП способом, который не подходит)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...