poco confuso, la molla di base app mvc ha questo:molla applicazione di esempio mvc base, annotazione confusione scansione
app-config.xml
<context:component-scan base-package="org.springframework.samples.mvc.basic" />
e mvc-config.xml trovi:
<!-- Configures the @Controller programming model -->
<mvc:annotation-driven />
non si ha realmente bisogno di entrambi?
per scansione componenti, questo significa che se non inserisco il percorso del pacchetto corretto i miei marcatori @Controller e @Service non avranno alcun effetto? Se ho bisogno di più di un pacchetto, posso semplicemente duplicare la voce?
Ho provato ad utilizzare solo il MVC: annotazioni-driven, ma che non ha funzionato, ho dovuto mettere com.example.web.controllers nel nodo XML componente-scan per farlo funzionare.
Solo per curiosità: contesto: component-scan include AutowiredAnnotationBeanPostProcessor e CommonAnnotationBeanPostProcessor che significa che i due componenti sono rilevati automaticamente e cablati insieme - ** tutto senza metadati di configurazione del bean forniti in XML ** –
Grazie, non volevo fare br.com.app poiché eseguirà la scansione di potenzialmente più classi del necessario. Bella risposta! btw qual è il diff tra un @component e @service? – Blankman
@Blankman Nessuno. @Service è anche un'annotazione @Component. Vedi qui: http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/stereotype/Service.html È solo un metadata speciale a ** denotare un componente di servizio nel livello di servizio * *. –