Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring инжекция зависимостей и generic классы 
:(
    Опции темы
diktator
Дата 17.8.2013, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Здравствуйте. Не могу разобраться с инжекцией зависимости в Spring для generic классов. Есть generic класс:

Код
abstract class BaseBO<Id, Entity, DAOClass extends DAO<Id, Entity>> implements BO<Id, Entity, DAOClass> {
    DAOClass dao;

    public DAOClass getDAO() {
        return dao;
    }
    //...
}


И класс использующий generic класс:
Код
public class TaskBO extends BaseBO<Long, Task, TaskDAO> implements BO<Long, Task, TaskDAO> {
    //пусто   
}


В spring нужно указать зависимость в классе TaskBO для свойства TaskDAO которое сгенерированно generic классом. Но spring не поваляет указать TaskDAO а только интерфейс DAO. 

В общем можно указать только так:
Код
<bean id="TaskBO" class="com.otv.model.bo.TaskBO">
        <property name="DAO" ref="TaskDAO" />
</bean>

<bean id="TaskDAO" class="com.otv.model.dao.TaskDAO">
        <property name="sessionFactory" ref="SessionFactory" />
    </bean>


Подскажите пожалуйста кто знает решение, как можно указать такую зависимость?

Это сообщение отредактировал(а) diktator - 17.8.2013, 02:18
PM MAIL   Вверх
diktator
Дата 17.8.2013, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



В общем разобрался, спасибо всем кто пытался помочь. Я не правильно понял, думал что в зависимостях DAO это интерфейс, а это свойство и было, просто в тет методе DAO с большой буквы вот оно и в зависимостях нужно было указать так. И ошибка была в другом:
Код
@ManagedProperty(value="#{TaskBO}")
TaskBO taskBO;

Причем если я подставлял так то работало:
Код
@ManagedProperty(value="#{TaskBO}")
BO<Long, Task, TaskDAO,> taskBO;


Потом взял просто для TaskDAO создал интерфейс свой и через него пошло. Для меня остается загадкой почему не хочет через класс устанавливаться ManagedProperty.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1007 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.