我有这样的属性设置:
<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中访问该属性时,不是一个spring bean - 实际上是一个注释为hibernate实体(而不是alertMailMessage bean)的pojo,它将返回null?
@Value("${app.email}")
private String defaultEmailAddress;
我想在其他地方使用属性设置“app.email”的值,除了alertMailMessage,最好的方法是什么? (alertMailMessage工作正常btw)
答案 0 :(得分:2)
你不能在hibernate实体中设置它,因为hibernate实体不是由spring管理的。
在spring服务中使用@Value
注释创建hibernate实体,并在需要时手动设置。但是在数据库中存储默认值看起来很奇怪,所以重新考虑一下。
作为旁注:如果使用aspectJ和@Configurable
,你可以拥有由spring管理的休眠实体,但这可能会使事情变得不必要。