Где я должен написать свой класс конфигурации Spring MVC в многоуровневой архитектуре в проекте Maven? - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь применить на практике то, чему научился с Spring и Spring-MVC в веб-приложении n-tiers.Но я нахожу трудности с правильной настройкой.

Так что я использую Maven.Я создал 3 проекта.Первый отвечает за общие реализации Hibernate DAO.Второй - это уровень моей бизнес-логики, где у меня есть классовые DAO и мои сервисы.Третий, где мои контроллеры.Я хочу использовать инъекцию зависимостей Spring для управления моими службами и экземплярами DAO.Но куда бы я ни поместил свой класс конфигурации, я получаю сообщение об ошибке:

org.springframework.beans.factory.UnsatisfiedDependencyException

Первый проект:

First project structure

Второй проект:

Second project structure

Третий проект:

Third project structure

Вы можете задаться вопросом, почему 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)}

Спасибо за ваше время.

1 Ответ

0 голосов
/ 16 мая 2019

Вы вложили свой первый и второй проект в свои зависимости в третьем проекте.Вот пример сборки моего проекта с 2 модулями.enter image description here Вот как я настраиваю свой проект: 1. Поместите основной модуль в зависимость от моего модуля приложения enter image description here 2. Вызовите его с Main enter image description here

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...