Spring属性文件

时间:2009-11-27 03:51:39

标签: spring properties

我在我的应用程序配置中使用它来指定获取消息的位置

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames" value="WEB-INF/properties/messages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

如何声明一个像我这样的bean,可以访问我的java类代码

3 个答案:

答案 0 :(得分:2)

你可以使用这个,而不是创建自己的,通过:

@Resource(name="messageSource")
private MessageSource messageSource;

答案 1 :(得分:0)

只要您的消息以密钥值对的形式存在于WEB-INF / properties / messages中,您对messageSource bean的声明就是正确的。

现在,假设你想在一个名为ClassA的类中注入messageSource,你有一个setter(setMessageSource)。您所要做的就是让spring容器将该类作为其中一个bean来管理。这意味着你在applicationContext.xml中将类声明为bean,如下所示:

<!-- I am not setting the scope of this object as I don't know what it should be. You should do that based on your needs -->
<bean id="classA" class="com.somepath.ClassA">
</bean>
那就是它!当spring容器初始化这个类时,它会识别出它有一个名为messageSource的字段,类型为ReloadableResourceBundleMessageSource,并在你的类的实例中注入messageSource。

答案 2 :(得分:0)

就像@Bozho在声明MessageSource之后说的那样,Spring将自动检测类型并注入它在您在上下文中设置的“WEB-INF / properties / messages [.properties]”中找到的属性文件,那么你可以像messageSource.getMessage("name"[,...])那样使用它,或者你可以采用旧式方式,你的bean可以实现MessageSourceAware,然后你需要为messageSource包含一个公共设置器 - 在这种情况下,您不需要显式注入messageSource,Spring会识别实现的接口并自动为您执行注入。