Я предполагаю, что вы используете плагин Struts2 Spring для интеграции обоих.При использовании этого ваши действия Struts, перехватчики создаются фабрикой объектов Spring и, следовательно, могут извлечь выгоду из внедрения зависимостей Spring-компонентов.
На стороне Spring один путь может (у меня нет 'не пробовал) работать: используя запрашивать bean-объекты в области , например:
<bean id="myBean" class="com.foo.MyBean" scope="request"/>
Контейнер Spring создает новый экземпляр bean-компонента, используя определение bean-компонента myBean
для каждого HTTPrequest.
На стороне Struts (ваше действие или пользовательский перехватчик) вы теперь можете внедрить bean-компонент Spring и установить свою информацию.Вы должны знать, что ваш бин теперь имеет состояние (информация, которую вы предоставили).
На стороне Hibernate теперь вы также должны иметь возможность получать бин из контекста и читатьинформацию и зарегистрируйте ее.
В качестве альтернативы вы можете подумать об использовании MDC (Mapped Diagnostic Context), как описано здесь для каркаса LOGBack .С помощью MDC вы можете очень легко поместить значения, например MDC.put("myKey", "myValue")
, и зарегистрировать их с помощью пользовательского шаблона, например %X{myKey}
.Это решение вообще обойдет ваш перехватчик Hibernate.