Я пытаюсь применить на практике то, чему научился с Spring
и Spring-MVC
в веб-приложении n-tiers
.Но я нахожу трудности с правильной настройкой.
Так что я использую Maven
.Я создал 3 проекта.Первый отвечает за общие реализации Hibernate
DAO.Второй - это уровень моей бизнес-логики, где у меня есть классовые DAO и мои сервисы.Третий, где мои контроллеры.Я хочу использовать инъекцию зависимостей Spring
для управления моими службами и экземплярами DAO.Но куда бы я ни поместил свой класс конфигурации, я получаю сообщение об ошибке:
org.springframework.beans.factory.UnsatisfiedDependencyException
Первый проект:
Второй проект:
Третий проект:
Вы можете задаться вопросом, почему AppConfig
в обоих проектах, это просто для целей отладки.Я не знаю, где именно я должен поставить его.
Мой AppConfig
класс:
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = { "com.controllers", "com.services", "com.dao" })
public class AppConfig {
}
Мой SpringMvcDispatcherInitializer
класс:
public class SpringMvcDispatcherInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { AppConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
ОшибкаЯ получаю, когда запускаю проект pfa-web
на Maven
сервере:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'touristController': Unsatisfied dependency expressed through field 'touristService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'touristServiceImp': Unsatisfied dependency expressed through field 'touristDao'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'touristDaoImp': Unsatisfied dependency expressed through field 'sessionFactory'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Спасибо за ваше время.