2011-08-05 9 views
7

Rozpocząłem pracę nad nowym projektem przy użyciu Spring 3 i używam adnotacji. Uwielbiam to, że mogę połączyć swoje zajęcia, aby uzyskać wstrzyknięte zależności, ale wiem, że to złe ćwiczenie, aby zacząć context:component-scan zacząć od pakietu podstawowego.Jaki jest sprytny sposób na zorganizowanie zajęć w Spring 3 dla skanowania podzespołów?

Używam DispatcherServlet, który ma własny plik konfiguracyjny xml. W tym jest również context:component-scan. Kiedy po raz pierwszy zacząłem uczyć się Springa, nakładałem się na moje składowe skany i widziałam fasolę tworzoną wiele razy. Chciałbym tego uniknąć.

Jaki jest dobry sposób na uporządkowanie moich pakietów lub skany komponentów w celu pokrycia wszystkich ziaren bez duplikowania?

Obecnie mam pakiety tak:

my.package.controller 
my.package.dao 
my.package.entity 
my.package.service 
my.package.util 

Jeśli mam fasoli We wszystkich tych pakietów to wydaje się łatwe wyjście byłoby umieścić <context:component-scan base-package="my.package"></context:component-scan> do applicationContext.xml i być z nim zrobić.

Czy lepiej byłoby zeskanować my.package.controller w xml repozytorium, a resztę (z wyjątkiem my.package.controller) w applicationContext.xml?

Czy powinienem zorganizować wszystkie moje opisywane zajęcia w jednym miejscu i wszystkim innym w innym? Coś jak:

my.package.spring.controller 
my.package.spring.dao 
my.package.spring.entity 
my.package.spring.service 
my.package.spring.util 
my.package.notannotated 
my.package.notannotated2 

Używam @Autowired dodać rejestrowanie się większość, jeśli nie wszyscy z moich klas, więc nie wiem, czy będę miał żadnych klas, które nie zostaną adnotacjami.

Nienawidzę utknąć w konfiguracji ... Wolę utknąć w kodzie, więc jeśli ktoś może zaoferować jakieś wskazówki, chętnie je powitam.

Dzięki!

Odpowiedz

12

Tak - w głównym kontekście skanować wszystko oprócz kontrolerów

<context:component-scan base-package="my.package"> 
    <context:exclude-filter type="regex" expression="my\.package\.controller.*"/> 
</context:component-scan> 

i w kontekście DispatcherServlet Wystarczy zeskanować pakiet sterownika.

+0

Wow, to było łatwiejsze niż myślałem, dzięki. Czy konfiguracja mojego pakietu wygląda rozsądnie? – Paul

+0

Wygląda dobrze dla mnie, to prawie dokładnie to, co robię. – sourcedelica

Powiązane problemy