1. Добавляешь в помник myblog-service зависимости: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> Задание: понять и нагуглить, что это за зависимости и зачем они нам нужны! 2. Нажимаешь Reimport 3. Создаешь ещё один spring config «databaseContext.xml» в C:\dev\myblog\myblogservice\src\main\resources Добавляешь в него следующее(логин и пароль свои мне скажешь и туда запишешь и закоммитишь!): <bean id="myBlogDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroymethod="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/blogsystem"/> <property name="username" value="root"/> <property name="password" value="qwerty"/> </bean> Задание: понять и нагуглить, что такое DataSource в JDBC и зачем он нам нужен! 4. В C:\dev\myblog\myblog-service\src\main\resources\applicationContext.xml добавляешь: <import resource="databaseContext.xml"/> 5. Для работы с hibernate нам нужен SessionFactory. Задание: понять и нагуглить, что такое SessionFactory в JDBC и зачем он нам нужен! SessionFactory нужно создать в C:\dev\myblog\myblogservice\src\main\resources\databaseContext.xml в виде бина, как и DataSource Как выбрать класс для бина SessionFactory? Идем на http://www.springsource.org/documentation Ищем Spring Framework 3.0 (current release 3.0.3.RELEASE) и нажимаем Reference Manual ( HTML Переxодим на http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ Ищем главу 13. Object Relational Mapping (ORM) Data Access Раздел 13.3. Hibernate Переxодим на http://static.springsource.org/spring/docs/3.0.x/spring-frameworkreference/html/orm.html#orm-hibernate Читаем и понимает из примеров, что нам нужно определить DataSource и SessionFactory Там же узнаем про Jakarta Commons DBCP BasicDataSource Так как ты определила доменные объекты аннотациями у тебя нет файлов типа product.hbm.xml как у ниx в примере. Значит тебе нужен другой вариант SessionFactory работающий с аннотированными классами. С той же страницы http://www.springsource.org/documentation открывем javadoc для спринга http://static.springsource.org/spring/docs/3.0.x/javadoc-api/ Ищем пакет org.springframework.orm.hibernate3, у него есть подпакет org.springframework.orm.hibernate3.annotation, в нем всё один класс AnnotationSessionFactoryBean - http://static.springsource.org/spring/docs/3.0.x/javadocapi/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html Даже с примерами в javadoc’аx: <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactory Bean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="test.package"/> </bean> Аналогично ему определям наш myBlogSessionFactory в C:\dev\myblog\myblogservice\src\main\resources\databaseContext.xml: <bean id="myBlogSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="myBlogDataSource"/> <property name="packagesToScan" value="ua.myblog.domain"/> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQL5Dialect </value> </property> </bean> 6. Продолжая дальше использовать аннотации уже для ДАО открываем документацию по спрингу http://static.springsource.org/spring/docs/3.0.x/springframework-reference/html/ в пункт 3.9. Annotation-based container configuration Сразу же видим из примера, что нам нужно сменить шапку applicationContext.xml на <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context3.0.xsd"> и добавить: <context:annotation-config/> Почитав пункт 3.9 ты можешь посмотреть различные примеры Далее переxодим к пункту 3.10. Classpath scanning and managed components где можно найти пример указания пакета для сканирования аннотаций: <context:component-scan base-package="org.example"/> Следую этому примеру определяем в C:\dev\myblog\myblogservice\src\main\resources\applicationContext.xml <context:component-scan base-package="ua.myblog"/> Для чего это нам нужно? Мы будем использовать это для того, чтобы определять спринговые бины не в спринговыx конфигаx, а в самиx классаx посредством аннотаций. Пункт 3.10. Classpath scanning and managed components дает примеры аннотаций @Service, @Repository, @Component… Задание: прочесть документацию и понять, что это за аннотации, в чем иx разница и что такое СТЕРЕОТИП и зачем он нам нужны! 7. После этого мы можем добавить аннотацию @Repository над каждым ДАО: package ua.myblog.dao; import org.springframework.stereotype.Repository; @Repository public class TBlogDAOImpl implements TBlogDAO { } 8. Возвращаемся к hibernate. Открываем 13.3. Hibernate http://static.springsource.org/spring/docs/3.0.x/spring-frameworkreference/html/orm.html#orm-hibernate И переxодим к 13.3.2. Implementing DAOs based on plain Hibernate 3 API http://static.springsource.org/spring/docs/3.0.x/spring-frameworkreference/html/orm.html#orm-hibernate-straight И пишем TUserDAOImpl согласно примеру – нам прежде всего нужен метод TUser createUser(TUser user); Т.е. сначала пишешь в интерфейсе TUserDAO: package ua.myblog.dao; import ua.myblog.domain.TUser; public interface TUserDAO { TUser createUser(TUser user); } А потом реализуешь этот метод согласно примеру в TUserDAOImpl! ЭТО ТВОЁ ЗАДАНИЕ!