XML Bean scope = "session" не работает. Исключение: сеанс области действия не активен для текущего потока - PullRequest
0 голосов
/ 15 февраля 2020

Поддерживалось старое весеннее приложение с конфигурацией бина xml, и возникла проблема обновления свойства в бине, где это свойство должно быть динамическим c, а значение получено из метода java. Раньше я устанавливал bean-компонент на scope = "protoype", и он работает, но это не очень хорошая идея, потому что он будет создавать экземпляр для каждого запроса, поэтому вместо этого нам нужно адаптировать область сеанса, но столкнулся с этой проблемой потока. Чего мне не хватает в приведенном ниже конфиге?

<bean id="var" class"com.package.javaClass" lazy-init="true" scope="session" ><aop:scoped-proxy/></bean>

<bean id="dynamicValue" factory-method="getDynamicValue" factory-bean="var" lazy-init="true" scope="session" ><aop:scoped-proxy/></bean>

<bean id="runAsAdvice" class="com.package.anotherClass" lazy-init="true" scope="session"> <!-- THIS IS INVOKED by an AOP config-->
   <property name="dynamicaVariable" ref="dynamicValue"></property>
   <aop:scoped-proxy/>
</bean>

Это по умолчанию init, потому что нам нужно получить значение в контексте приложения перед созданием bean-компонента.

...