我有一个奇怪的问题,就是无法实例化一个注入另一个bean的bean。
PropertiesUtil
是有问题的bean。它会在LoginController
sn-servlet.xml
类,如下所示
<bean name="/Login.html" class="org.sn.auth.LoginController">
<property name="dbUtil" ref="dbUtil"/>
<property name="propertiesUtil" ref="propertiesUtil"/>
</bean>
我的PropertiesUtil.java是
public class PropertiesUtil {
private Properties properties;
public PropertiesUtil() {
properties = new Properties();
try {
properties.load(ClassLoader.getSystemResourceAsStream(
"/resources/messages.properties"));
}
catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
NullPointerException发生在我尝试使用properties
到load
资源的行。我真的很困惑,为什么当我在上一行中明确地将其瞬间显示时它为空。
我也尝试将properties
个实例注释为constructor-arg
,并property
注明sn-servlet.xml
,但都是徒劳的。
当那个bean被弹簧注入到其他类时,是不是我不应该在构造函数中做任何操作?
感谢您的任何想法!
答案 0 :(得分:4)
查看ClassLoader.getResourceAsStream()
的javadoc。如果找不到资源,则返回null
。因此,当尝试从空NullPointerException
读取时,似乎无法找到messages.properties并且Properties.load()方法将抛出InputStream
。