Я планирую приложение, которое должно предоставлять службы, которые очень похожи на службы Java EE-контейнера на сторонний код расширения. В основном, что это приложение делает, это найти набор рабочих элементов (в настоящее время планируется использовать Hibernate) и отправлять их потребителям рабочих элементов.Как написать приложение, которое более или менее действует как контейнер?
Рабочие элементы потребителя загружают данные о деталях, вызывают сторонний код расширения, а затем, если код третьей стороны не сработал, обновите некоторое состояние рабочего элемента и выполните всю выполненную работу.
Я явно не пишу это как приложение Java EE. По сути, мое приложение должно предоставить многие услуги контейнера, однако; он должен обеспечить управление транзакциями, объединение пулов и управление ими и определенную поддержку развертывания. Как мне либо A) предоставить их напрямую, либо B) выбрать стороннюю библиотеку для их предоставления. Из-за требования более крупного проекта авторы расширений будут использовать Hibernate, если это имеет значение.
Стоит отметить, что из всех особенностей, о которых я упоминал, тот, который я знаю меньше всего, касается управления транзакциями. Как я могу предоставить эту службу для кода расширения, запущенного в моем контейнере?
+1 - Отлично. Мне жаль, что я не видел его первым. – duffymo
Хороший ответ, но Quartz предназначен для планирования не нарезания резьбы. Конечно, он использует потоки, но его функция - планирование. Тем не менее, хороший ответ. – Robin
К сожалению, аспект, который вы затушевывали: «Я считаю, что весна имеет какую-то транзакционную транзакцию mgmt» - это самая сложная часть того, что я делаю, и тот, с которым мне нужно столкнуться, прежде чем выбирать рамки. Я уже рассматриваю Spring, но мне нужно знать, способен ли он поддерживать систему, которую я хочу построить. –