Java 在运行时实例化具有@Autowired依赖项的对象会引发nullpointer异常
我在类中@Autowired了sessionfactorybean,然后在运行时实例化了该类,当我调用该方法时,它抛出了一个null指针异常。我不知道我的代码中缺少了什么。它编译成功,当我运行它时,它抛出了一个nullpointer异常。有人能帮我吗 这是我的班级:Java 在运行时实例化具有@Autowired依赖项的对象会引发nullpointer异常,java,spring,autowired,Java,Spring,Autowired,我在类中@Autowired了sessionfactorybean,然后在运行时实例化了该类,当我调用该方法时,它抛出了一个null指针异常。我不知道我的代码中缺少了什么。它编译成功,当我运行它时,它抛出了一个nullpointer异常。有人能帮我吗 这是我的班级: public class InstantiateSampleAutowire{ SampleAutoWire sampleAutowire = new SampleAutowire(); sampleAutowir
public class InstantiateSampleAutowire{
SampleAutoWire sampleAutowire = new SampleAutowire();
sampleAutowire.getSomeData();
}
@Component
public class SampleAutowire{
@Autowired
private SessionFactory sessionFactory;
private Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
public void getSomeData(){
getCurrentSession().createQuery(SQLQuery);
}
}
您应该将SampleAutowire注入实例化SampleAutowire,以便让spring上下文处理您的实例
public class InstantiateSampleAutowire {
@Autowired
SampleAutoWire sampleAutowire;
...
}
如果你读了这篇文章,你会得到一个更好的解释:如果它是一个真正的代码,那么一些配置就会丢失 公共类实例化SampleAutowire{
SampleAutoWire sampleAutowire = new SampleAutowire();
sampleAutowire.getSomeData();
}
为了使用组件(SampleAutowire),您需要调用器类(InstancesSampleAutoWire)位于调用器获取spring上下文的同一spring上下文中
你可以通过添加@Component来做到这一点
@组成部分
公共类实例化SampleAutowire{
SampleAutoWire sampleAutowire = new SampleAutowire();
sampleAutowire.getSomeData();
然后@Autowire连接到实例
@自动连线
SampleAutoWire SampleAutoWire;似乎您对依赖项注入没有经验。请参阅。由于您在代码中实例化对象,Spring无法捕获该对象并注入依赖项。可能重复