gpt4 book ai didi

java - 为什么ApplicationContext的getMessage()不读取.properties文件: Spring

转载 作者:行者123 更新时间:2023-11-30 06:54:04 25 4
gpt4 key购买 nike

我正在浏览 Spring 的 MessageSource 在线教程。我无法弄清楚这段小代码中哪里出了问题。

驱动程序类别:

public class Driver {

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

Shape shape = (Shape) context.getBean("circle");

shape.draw();

System.out.println(context.getMessage("greeting",null, "Default greeting", null));

}
}

配置文件,spring.xml:

<context:component-scan base-package="model" /> 

<bean class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basenames">
<list>
<value>mymessages</value>
</list>
</property>
</bean>

<bean id="point1" class="model.Point">
<property name="x" value="20 " />
<property name="y" value="0" />
</bean>

mymessages.properties File:

greeting=hello!

当我运行 main() 方法时,以下是输出:

drawing circle with
Point (x = 20, y = 0)
Default greeting

我的问题是,为什么 mymessages.properties 文件中提到的问候语 hello! 没有被打印?顺便说一句,我只是将所有文件放在正确的目录中。

最佳答案

This帮助我写了我的问题的答案。在我的配置文件中,spring.xml我没提到id = messageSource<bean>元素。正确的代码如下:

<bean id = "messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>mymessages</value>
</list>
</property>
</bean>

When an ApplicationContext is loaded, it automatically searches for a MessageSource bean defined in the context. So, the bean must have the name messageSource.

关于java - 为什么ApplicationContext的getMessage()不读取.properties文件: Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42170427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com