NimChimpsky
NimChimpsky

Reputation: 47280

Properties in Spring, accessing within Java app

I have a properties set like so :

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

they are then referenced in app context (specifically app.email) like so :

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

However when I try to access that property within an actual pojo, not a spring bean - actually a pojo annotated as a hibernate entity (not the alertMailMessage bean) it is coming back as null ?

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

I want to use the value of property setting "app.email" elsewhere, other than alertMailMessage, whats the best way ? (alertMailMessage is working fine btw)

Upvotes: 0

Views: 687

Answers (1)

Bozho
Bozho

Reputation: 597046

You can't set it in a hibernate entity, because hibernate entities are not managed by spring.

Use the @Value annotation in your spring service which creates the hibernate entity, and set it manually if needed. But it looks odd to store a default value in the database, so reconsider that.

As a sidenote: you can have hibernate entities managed by spring if using aspectJ and @Configurable, but that may complicate things unnecessarily.

Upvotes: 2

Related Questions