2009-12-15 4 views
1

@Repository @Service @Controller @componentannotation printemps Comprendre DI

-> utiliser uniquement pour le printemps bean géré (pas tissage besoin)
-> @ référentiel, @Service @Controller est en fait un @component, en nommant simplement plus facile pour le programmeur de comprendre

@Configurable 

---> non utilisé pour le printemps bean géré (à utiliser avec le tissage)

@Autowired 

-> utilisation pour DI pour les deux cas ci-dessus

Est-ce que je comprends bien?

Répondre

2

Tout sauf @Configurable sont corrects. Des javadocs de printemps:

@interface publique Configurable Marques une classe comme étant éligible pour la configuration axée sur Spring. Généralement utilisé avec l'AspectJ AnnotationBeanConfigurerAspect.

1

Les annotations printanières ont différentes fonctions. Comme vous le savez, Spring utilise beaucoup les proxies pour assurer sa fonctionnalité. Mais cette fonctionnalité dépend de l'annotation cible.

Alors, quand vous mettez

@Repository 
public class UserRepositoryImpl implements UserRepository { 

    public void saveUser(User user) { 
     // logic goes here 
    } 

} 

Vous dites

printemps, proxy mes UserRepositoryImpl et si elle lance une exception de base de données, pris et re-jeter comme un DataAccessException, un générique base de données de printemps d'exception

Et ainsi de suite ...

salutations,

Questions connexes