【问题标题】:Declaring Injection fields as static将注入字段声明为静态
【发布时间】:2016-08-28 18:52:03
【问题描述】:

我可以在我的控制器中将服务注入声明为静态吗?

例如:

@注入 私有静态 UserAttributeService 用户服务;

更新:我的要求是在静态块中初始化 Map。地图将不可修改,但会在数据库调用后初始化。

但它是不允许的,因为不能从静态块调用非静态服务层。我没有尝试将我的服务注入声明为静态的,因为我不确定这是否是一个好习惯。

static { crudService.executeNamedQuery(DBOperation.SELECT, "someQuery", null, null); }

【问题讨论】:

  • 两个后续问题:1)如果您能够在实际需要的地方注入依赖项,为什么要这样做? 2) 你尝试过吗?
  • @Makoto 请查看更新。

标签: java cdi inject


【解决方案1】:

是的,你可以。

来自annotation's javadoc

可能适用于静态成员和实例成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多