我正在尝试从我的消息属性文件中获取消息
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>mymessage</value>
</list>
</property>
</bean>
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
public class Test{
@Autowired
private MessageSource messageSource;
public MessageSource getMessageSource() {
return messageSource;
}
public void setMessageSource(MessageSource messageSource) {
this.messageSource = messageSource;
}
public void draw()
{
System.out.println(this.messageSource.getMessage("name",null,"default",null));`enter code here`
}}
因为我得到空指针异常
但是当我更改代码并在测试类中实现MessageSourceAware时,它的工作正常。甚至在我删除了@autowired注释和bean id defination本身之后。
答案 0 :(得分:0)
这里我在调度程序上下文中声明“servlet-context.xml”:
<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<beans:property name="basename" value="classpath:messages" />
<beans:property name="defaultEncoding" value="UTF-8"/>
<beans:property name="fileEncodings" value="UTF-8"/>
</beans:bean>
将班级名称从class="org.springframework.context.support.ResourceBundleMessageSource
更改为class="org.springframework.context.support.ReloadableResourceBundleMessageSource
为什么你的basename属性为空?