About

30 мая 2012 г.

Spring + JPA : минимальная конфигурация.


Задача : Сконфигурировать и запустить проект Spring + JPA. Интересуют в первую очередь связка через JPA , настройки и общий принцип работы.
Исходные данные.
Java 6, Spring,
Среда : Netbeans
Сервер : Glassfish 3.1
ORM : EclipseLink
Веб : JSF2, Facelets
бд : MySql
Сборка : Maven2

Не буду расписывать каждую строчку исходника. Схема стандартная - добавление в pom.xml библиотек спринга и прочих, настройка самого спринга, настройка jpa (persistence.xml), создание бинов, репозиториев (не забыть про конфигурацию в xml-ках спринга), настройки jsf (web.xml, faces-context.xml), вывод на страницу xhtml данных из бд.

На что обратить внимание.
1. Настройка работы с базой.
В persistence.xml писать transaction-type="JTA" . Почему это так можно прочитать полезной статье. В двух словах - при использовании гласфиша правильно и надежно доверить обработку транзакций java ee контейнеру.
При создании persistence.xml нетбинс сам создаст нужный jdbc ресурс, если знает о сервере и все настроено конечно)
Еще в web.xml добавить инфу о персистенс юните :

        persistence/pu_name
        pu_name
    


2. Spring
Что нужно бы все заработало :
- библиотеки с зависимотрями
- файл конфигурации спринга ( у меня applicationContext.xml  , см исходник)
- в faces-config.xml добавить :

        
            org.springframework.web.jsf.el.SpringBeanFacesELResolver                
        
    
из названия понятно что это нужно для интеграции бинов спринга в менедж бины и на страницы.
- в web.xml :
  
    
        
            org.springframework.web.context.ContextLoaderListener
        
    


С конфигурацией все. Далее - создание репозиториев со стандартными простейшими функциями. Отдельно хочу сказать про spring-data-jpa - библиотека содержащая набор всегда используемых функций для работы с бд (сохранить, удалить и тп). Код репозитория получается очень компактным.

На jsf не буду останавливаться, все как обычно, спринг не влияет.

Как в итоге выглядет :


Исходник http://code.google.com/p/fotosimple/downloads/list

0 comments:

Отправить комментарий