2012-06-06 3 views
3

Если кто-либо попытался использовать MyBatis в качестве своей библиотеки персистентности для приложения JBoss 7.1/Java EE6?Интеграция MyBatis с веб-приложением JBoss 7.1

Мне интересно, какие наилучшие подходы к обработке соединений, трансакций, откатов и т. Д.?

Как насчет поддержки CDI? Оглядываясь в Интернете, кажется, что в это время MyBatis поддерживает только две платформы для разработки зависимостей (JSR-330), Google Guice и Spring. Я столкнулся с CDI Extensions, в котором может быть что-то интересное.

Моей идеей было бы иметь дескриптор контейнера для всех вышеперечисленных, но может быть трудно добраться до этой точки.

Любые советы, подсказки, впечатления?

+0

Если вы решили реализовать его самостоятельно, было бы замечательно, если бы вы могли набросать свое решение здесь ... –

+0

Да .. I будет работать над внедрением этого решения через несколько месяцев. Я буду использовать эту запись и прокомментировать все, что я обнаружил в процессе. – Begui

ответ

3

Существует новый mybatis-КДИ модуль. Он еще не выпущен, но вы можете попробовать моментальный снимок, он находится в github: https://github.com/mybatis/cdi

+0

Наша текущая реализация того, как мы справляемся с этим, очень ошибочна, подвержена ошибкам и очень трудно обрабатывать транзакции соответствующим образом. Глядя на ваш код, он выглядит намного чище ... До сих пор два больших пальца вверх. – Begui

1

Нет поддержки CDI, но, как вы сказали, если вы хотите, чтобы DI пошел весной или Guice.

С JBoss у вас есть в основном две возможности: - EJB 3 - Spring

При использовании EJB 3 транзакции обрабатываются автоматически ими. MyBatis просто игнорирует транзакции и позволяет контейнеру совершать/откатывать.

При использовании Spring MyBatis связывается с транзакциями Spring с использованием модуля интеграции MyBatis-Spring.

1

Я бы создал свой собственный CDI bean - используйте @Produces для фабрики и @Inject, чтобы получить сеанс.

Вот старый Ibatis весна завод, который мог бы быть продюсером, после некоторых изменений: SqlMapClientFactoryBean

+0

Я могу в итоге сделать что-то очень похожее на это .. Спасибо – Begui

+0

Я на самом деле сейчас работаю над той же концепцией. Это будет быстрый запуск JBoss AS 7. Я отправлю сюда то, что в конечном итоге получаю. –

+0

Я думаю, что вы могли бы аннотировать методы, касающиеся MyBatis с квалификатором арбитража; затем перехватите эти вызовы и откройте сеанс перед вызовом. Я использовал этот раз для Weld-SE + Hibernate, нужно найти. –

Смежные вопросы