i具有使用DAO进行一些计算的服务MyStaticService
。如何将MyDao
对象注入类字段?我尝试使用@Autowired
实现设置器,但是当我调用doCalculations(..)
时,DAO为null
。我在做什么错?
public class MyStaticService
{
private static MyDao dao;
public static int doCalculations(..){
dao.doSmth()
// omitted
}
}
首先,您不能自动弹簧豆在没有由春季管理的类中。
因此,在您的示例中,即使您是有效的弹簧托管bean,也无法将其注入神秘学服务。当然,它永远是无效的。如果您的静态服务类本身不是Spring Component
春季依赖注入仅在弹簧IOC容器管理的课程中工作。
您的静态服务类是单身班更有意义的,因此将其声明为弹簧组件没有任何伤害。
@Component
public class MyStaticService
然后您可以自动自动dao课程。
理想情况下,服务类应为单身人士,与您的Daos一样。
您需要初始化对象才能访问MyDao((类的功能:
dao = new MyDao();
或创建实例
时 private static MyDao dao = new MyDao();
否则它将始终显示null