Я начал работу над новым проектом, используя Spring 3, и я использую аннотации.Мне нравится, что я могу подключить свои классы, чтобы вводить зависимости, но я знаю, что это плохая практика - запускать context:component-scan
с базового пакета.
Я использую DispatcherServlet
, который имеет свой собственныйXML-файл конфигурации.В этом тоже context:component-scan
.Когда я впервые начал изучать Spring, у меня было частичное совпадение при сканировании компонентов, и бины создавались несколько раз.Я бы хотел этого избежать.
Какой хороший способ организовать сканирование моих пакетов или компонентов для охвата всех компонентов без дублирования?
В настоящее время у меня есть такие пакеты:
my.package.controller
my.package.dao
my.package.entity
my.package.service
my.package.util
Если у меня есть bean-компоненты во всех этих пакетах, то кажется, что самым простым способом было бы поместить <context:component-scan base-package="my.package"></context:component-scan>
в applicationContext.xml и покончить с этим.
Было бы этолучше сканировать my.package.controller
в xml диспетчера, а остальные (кроме my.package.controller) в applicationContext.xml?
Или я должен расположить все свои аннотированные классы в одной области, а все остальное в другой?Примерно так:
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
Я использую @Autowired, чтобы добавить ведение журнала в большинство, если не во все мои классы, поэтому я не знаю, что у меня будут классы, которые не будут аннотированы.
Я ненавижу зацикливаться на конфигурации ... Я бы предпочел застрять в коде, поэтому, если кто-то может предложить какие-либо советы, я с готовностью их приветствую.
Спасибо!