2013-07-24 3 views
0

У меня есть интерфейсКак я могу определить компонент, если он имеет интерфейс шаблона

public interface ServiceImpl { 
    public List<?> getAll(); 
} 

и имеют класс компонента

public class MessageService implements ServiceImpl{ 
@Autowired 
private SessionFactory sessionFactory; 

@Override 
public List<MessageItem> getAll() { 
    List<MessageItem> lst = sessionFactory.getCurrentSession().createQuery("from MessageItem c").list(); 
    return lst; 
} 
} 

Bean не создается ....

Bean Defination

<bean id="messageService" class="ru.apusvao.phone.model.MessageService"/> 

Исключение

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [ru.apusvao.phone.model.MessageService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
+3

Что такое исключение – MayurB

+0

org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет соответствия боб типа [ru.apusvao.phone.model.MessageService] не найдено для зависимостей: ожидается, по крайней мере, 1 боб, который квалифицирует как кандидат автошины для этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)} –

+0

Ваш код ошибочно написан – MayurB

ответ

0
public class MessageService implements ServiceImpl{ 
@Autowired 
@Qualifier("transactionmanager") 
private SessionFactory sessionFactory; 

@Override 
public List<MessageItem> getAll() { 
    List<MessageItem> lst = sessionFactory.getCurrentSession().createQuery("from MessageItem c").list(); 
    return lst; 
} 
} 

<!-- Hibernate session factory --> 
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    ... 
</bean> 

<!-- Hibernate transaction manager --> 
<bean id="transactionManager" 
    class="MessageService"> 
    <property name="sessionFactory" ref="sessionFactory"/> 
</bean> 
+0

Если я чего-то не упускаю, этот код ничего не делает для решения проблемы и просто вводит дополнительный класс. –

+0

Но это правильный способ добавления зависимостей .http: //javapapers.com/spring/dependency-injection-di-with-spring/. Проверьте это. – MayurB

+0

«Autowired» может быть применено к конструктору, сеттеру или поле любому из которые можно считать «правильными». Проблема заключается в том, что Spring не может найти экземпляр 'ru.apusvao.phone.model.MessageService' для инъекций и, следовательно, исключает исключение. –

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