如何在弹簧中注入静态类中的静态字段



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

最新更新