Alternativa para o @Autowired do Spring

Senhores,

Seguinte, eu tô utilizando esquema de injeção de dependência com o Spring, e tenho a seguinte dúvida, existe algo através de annotation que possa dizer o nome do meu objeto que eu estou querendo que ele utilize? Pois com autowired, eu não consigo setar o nome da classe que eu quero que carregue.

Não gostaria de fazer via XML.

Seria algo do tipo:

<bean id="genericDAOImplLog" class="controler.database.impl.GenericDAOImplLog">
     <constructor-arg ref="sessionFactoryLog"/>
</bean>

No caso eu tenho a seguinte classe:

@Autowired
    public void setService(CadastroService service){
            this.service = service;
    }

Só que está aparecendo a seguinte mensagem:

...org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [controler.database.service.CadastroService] is defined: expected single matching bean but found 2: [cadastroService, dao]

Gostaria de continuar utilizando annotation. Ao invés de ter que fazer a injeção de dependência através de XML.

Desde já agradeço.

vc pode dá um nome ao seu bean ex: @Service(“xx”)

e no local de injeção vc usar o @Qualifier(“xx”)

aí vc estará indicando quem vc deseja injetar.

[s]

tipo…funcionou…mas surgiu outra dúvida…

Eu tentei usar o @Qualifier pra injetar um parâmetro de um construtor…e não rolou…

Detalhe a classe está sendo criada através do applicationContext, segue código:

<bean id="sessionFactoryDQ" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="entityInterceptor">
            <ref bean="interceptorDatabase"/>
        </property>
        <property name="dataSource">
            <ref bean="dataSourceDQ"/>
        </property>
        ...

Dai quero utilizar o sessionFactoryDQ como parâmetro de um construtor, segue abaixo:

public GenericDAOImpl(SessionFactory sf) {
        setSessionFactory(sf);
        
    }

Ele funcionou quando eu quero fazer a injection em uma variável.

Algum idéia de como poderia fazer?