Классы автопоездов Struts Action с пружиной - PullRequest
3 голосов
/ 27 марта 2011

У меня есть вопрос о весне и стойках. В настоящее время у меня есть весна, где я делаю уроки для моих стояков.

Я экспериментировал и пытался заставить Spring ввести мои классы действий Struts для меня использую автопроводку.

У меня есть мой весенний applicationContext файл конфигурации, сканирующий базовый пакет, который класс действия в использовании context:component-scan base-package="my.package", и я использую аннотацию @Component на уровне класса классов действий. Я также использую @Qualifier("myActionClass") на том же уровне классов действий. Я не настраиваю класс действия как бин Spring в applicationContext.

Затем в моем файле конфигурации struts.xml при настройке класса действий вместо того, чтобы указывать полное имя пакета и имя класса, я использую @Qualifier имя аннотации "myActionClass".

Это не работает, хотя. Если в моем файле конфигурации applicationContext настройте мой класс действия как пружинный компонент, избавьтесь от аннотации @Component и @Qualifier в классе действия, а в struts.xml поместите идентификатор класса Spring для бина. класс, потом Spring вводит мой класс действий для меня, и все денди. Только это не использует Autowiring класса action, и это то, что я тестировал.

Кто-нибудь знает, используется ли автоматическая разводка с использованием контекста: компонент-сканирование, базовый пакет сканировать ваши пакеты на предмет ваших классов действий, чтобы вам не приходилось настраивать их в applicationContext возможно?

Ответы [ 2 ]

3 голосов
/ 27 марта 2011

Все объясняется в документации Spring: Apache Struts 1.x и 2.x .

Я не уверен, используете ли вы Struts 1 или 2. Для Struts 1 вы использовалидобавить плагин Spring в конфигурацию Struts (я знаю, что он работает).В Struts 2 все действия создаются Spring, поэтому они полностью способны к внедрению Spring, как и все другие bean-компоненты.

0 голосов
/ 27 марта 2011

Struts 2, похоже, полагается на наличие bean-компонента spring с тем же именем bean-компонента spring, совпадающим с именем класса действия (полное имя с пакетом). Вы можете указать имя компонента в аннотации @Component, а также можно создать глобальную стратегию именования компонентов, определяемую пользователем, чтобы избежать добавления этой информации ко всем компонентам

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