Возможно получить доступ к переменной Java в ApplicationContext.xml? - PullRequest
0 голосов
/ 01 апреля 2011

Мы используем Springframework.Можно ли получить доступ к существующей переменной из java-класса в ApplicationContext.xml?

Например, у нас есть класс с номером потока, который инициализирован на 5. Есть ли способ прочитать это '5' вконтекста приложения, чтобы мы могли использовать его для внедрения других классов Java?

Если да, то как?

С уважением,

Walle

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

Если вы используете Spring 3, вы должны быть в состоянии сделать это с помощью Spring EL. Проверить http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/expressions.html

Вот пример, предполагающий, что вы хотите использовать открытое статическое поле THREAD_NUMBER класса mypackage.MyClass:

  <bean id="myBean"
        class="mypackage.AnotherClass">
    <property name="theProperty">
      <value>#{T(mypackage.MyClass).THREAD_NUMBER}</value>
    </property>
  </bean>

Если это не статическое поле, а поле экземпляра, вам сначала потребуется компонент, а затем вызвать соответствующий метод получения из выражения Spring EL.

1 голос
/ 01 апреля 2011

Если вы не хотите использовать EL или использовать более старую версию Spring,

<bean id="myBean" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
        <property name="staticField" value="MyClass.MY_STATIC_FIELD"/> </bean>
0 голосов
/ 01 апреля 2011

Взгляните на BeanPostProcessor.Возможно, он может делать то, что вы хотите.

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