Свойства в Spring, доступ в приложении Java - PullRequest
0 голосов
/ 23 марта 2012

У меня есть свойства, настроенные так:

<context:property-placeholder
        location="file:${catalina.home}/conf/my.properties"
        ignore-unresolvable="true" />

Затем они ссылаются в контексте приложения (в частности, app.email), например так:

<bean id="alertMailMessage" class="org.springframework.mail.SimpleMailMessage">
  <property name="to">
    <value>${app.email}</value>
  </property>
</bean>

Однако, когда я пытаюсьполучить доступ к этому свойству в реальном pojo, а не в bean-компоненте - на самом деле pojo, аннотированное как спящий объект (не bean-компонент alertMailMessage), возвращается как нулевое?

@Value("${app.email}")
private String defaultEmailAddress;

Я хочу использовать значение параметра свойства "app.email" в другом месте, кроме alertMailMessage, как лучше?(кстати, alertMailMessage работает нормально)

1 Ответ

2 голосов
/ 23 марта 2012

Вы не можете установить его в спящем объекте, потому что спящий объект не управляется весной.

Используйте аннотацию @Value в сервисе Spring, которая создает спящий объект, и при необходимости установите его вручную. Но кажется странным хранить значение по умолчанию в базе данных, так что пересмотрите это.

Как примечание: у вас может есть объекты гибернации, управляемые весной, если использовать aspectJ и @Configurable, но это может излишне усложнить ситуацию.

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