Java 来自 xml returns 空指针异常的 beans
Java Beans from xml returns null pointer exception
嗨,我的应用程序有点问题。
我正在尝试从 xml.
获取 bean 数据
beans.xml
<bean id="s3Bean" class="com.example.demo.controller.S3Bean">
<property name="s3Host" value="${s3.host}" />
<property name="s3AccessKey" value="${s3.accessKey}"/>
<property name="s3SecretKey" value="${s3.secretKey}"/>
<property name="s3Bucket" value="${s3.bucket}"/>
</bean>
S3Bean.java
@ImportResource("classpath:beans.xml")
public class S3Bean {
private String s3Host;
private String s3AccessKey;
private String s3SecretKey;
private String s3Bucket;
public void setS3AccessKey(String s3AccessKey) {
this.s3AccessKey = s3AccessKey;
}
public void setS3SecretKey(String s3SecretKey) {
this.s3SecretKey = s3SecretKey;
}
public void setS3Bucket(String s3Bucket) {
this.s3Bucket = s3Bucket;
}
public void sets3Host(String s3Host) {
this.s3Host = s3Host;
}
}
Class也有吸气剂。
在我的控制器中,我正在尝试获取这样的 bean。
public S3Bean getS3Bean() {return S3Bean;}
public void setS3Bean(S3Bean s3Bean) {S3Bean = s3Bean;}
private S3Bean S3Bean;
...
S3Bean.getS3Host();
这得到returns 空指针。
当我从应用程序上下文中获取 bean 时,它打印正常。
ApplicationContext ctx = new ClassPathXmlApplicationContext("/beans.xml");
S3Bean bean = ctx.getBean(S3Bean.class);
System.out.println(bean.toString());
你能解释一下为什么让 属性 剂量起作用的第一种方法吗?
堆栈跟踪
java.lang.NullPointerException: null
at com.example.demo.controller.hello.sayHello(hello.java:27) ~[classes/:na]
27行是S3Bean.getS3Host();
我发现了问题所在。我没有在 beans.xml.
中声明 S3Bean
<bean id="springBean.Impl" class="com.example.demo.controller.Impl">
<property name="S3Bean" ref="springBean.S3Bean"/>
</bean>
嗨,我的应用程序有点问题。 我正在尝试从 xml.
获取 bean 数据beans.xml
<bean id="s3Bean" class="com.example.demo.controller.S3Bean">
<property name="s3Host" value="${s3.host}" />
<property name="s3AccessKey" value="${s3.accessKey}"/>
<property name="s3SecretKey" value="${s3.secretKey}"/>
<property name="s3Bucket" value="${s3.bucket}"/>
</bean>
S3Bean.java
@ImportResource("classpath:beans.xml")
public class S3Bean {
private String s3Host;
private String s3AccessKey;
private String s3SecretKey;
private String s3Bucket;
public void setS3AccessKey(String s3AccessKey) {
this.s3AccessKey = s3AccessKey;
}
public void setS3SecretKey(String s3SecretKey) {
this.s3SecretKey = s3SecretKey;
}
public void setS3Bucket(String s3Bucket) {
this.s3Bucket = s3Bucket;
}
public void sets3Host(String s3Host) {
this.s3Host = s3Host;
}
}
Class也有吸气剂。 在我的控制器中,我正在尝试获取这样的 bean。
public S3Bean getS3Bean() {return S3Bean;}
public void setS3Bean(S3Bean s3Bean) {S3Bean = s3Bean;}
private S3Bean S3Bean;
...
S3Bean.getS3Host();
这得到returns 空指针。 当我从应用程序上下文中获取 bean 时,它打印正常。
ApplicationContext ctx = new ClassPathXmlApplicationContext("/beans.xml");
S3Bean bean = ctx.getBean(S3Bean.class);
System.out.println(bean.toString());
你能解释一下为什么让 属性 剂量起作用的第一种方法吗?
堆栈跟踪
java.lang.NullPointerException: null
at com.example.demo.controller.hello.sayHello(hello.java:27) ~[classes/:na]
27行是S3Bean.getS3Host();
我发现了问题所在。我没有在 beans.xml.
中声明 S3Bean <bean id="springBean.Impl" class="com.example.demo.controller.Impl">
<property name="S3Bean" ref="springBean.S3Bean"/>
</bean>