Я сейчас в процессе добавления Spring и Hibernate в существующее приложение, но после прочтения большого количества учебников есть еще пара (также много чего), которые кажутся странными мне или мне что-то не хватает ...Spring - Tutorials vs Real Life
Все обучающие материалы, которые я нашел, являются прямолинейными (как и большинство учебников), как видно на Пример A, один контроллер для обработки запросов (JSP или WS) и autwire класс менеджера для взаимодействия с БД.
В моем случае это не применяется, так как приложение имеет класс для обработки запросов, а затем создает экземпляр класса обработчика, который, в свою очередь, создает новый класс для обработки чего-то другого, который создает новый класс для обработки (....) *, а затем обрабатывает соединение с базой данных, как показано на . Пример B.
Мой вопрос, как я могу сделать мой бизнес-логики класса п«Springable», то есть возможность сделать менеджера баз данных autowired внутри него?
Из всех примеров, которые я видел, я пришел с этими альтернативами:
- Создание autowire для ALL в DBManager внутри контроллера, а затем IoC всем бизнес Классы, пока не достигнет класса Business Logic n. Это будет соответствовать стандартам пружине, но означало бы большинство рефакторинга кода
- Transform ВСЕ классов бизнес-логики в фасолью
- Добавить SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext (это); к классу бизнес-логики п и использовать @Autowire для доступа к DBManager
Могу ли я что-то отсутствует или есть другая альтернатива?
На мой взгляд, лучший (или правый) подход был бы альтернативой. 2. Преобразование всех бизнес-логик и классов доступа к данным в весенние бобы ('@ Service' и' Repository') и вместо создания экземпляров в код, настроить весну, чтобы вставлять эти компоненты, где это необходимо. Возможно, вы захотите использовать тег 'component-scan', а не подробный XML, чтобы понять, как использовать эти компоненты и управлять ими. –