为什么 Quarkus 会警告我有关私有领域的注入?
Why does Quarkus warn me about injection in private fields?
当我在我的 Quarkus 应用程序中使用如下内容时:
@Path("v1")
@Produces(APPLICATION_JSON)
public class HelloWorldResource {
@Inject
private SomeBean someBean;
}
然后我在构建过程中收到以下警告。
[INFO] [io.quarkus.arc.processor.BeanProcessor] Found unrecommended usage of private members (use package-private instead) in application beans:
- @Inject field acme.jaxrs.v1.HelloWorldResource#someBean
一切似乎都很好,为什么 Quarkus 建议将 private
更改为 package-private
?
如果 属性 是 package-private
,Quarkus 可以直接注入它而不需要任何反射来发挥作用。
这就是为什么 Quarkus 推荐 package-private
成员进行注入,因为它试图尽可能避免反射(原因是更少的反射意味着更好的性能,这是 Quarkus 努力实现的目标)。
有关详细信息,请参阅 this 指南的第 2 部分。
当我在我的 Quarkus 应用程序中使用如下内容时:
@Path("v1")
@Produces(APPLICATION_JSON)
public class HelloWorldResource {
@Inject
private SomeBean someBean;
}
然后我在构建过程中收到以下警告。
[INFO] [io.quarkus.arc.processor.BeanProcessor] Found unrecommended usage of private members (use package-private instead) in application beans:
- @Inject field acme.jaxrs.v1.HelloWorldResource#someBean
一切似乎都很好,为什么 Quarkus 建议将 private
更改为 package-private
?
如果 属性 是 package-private
,Quarkus 可以直接注入它而不需要任何反射来发挥作用。
这就是为什么 Quarkus 推荐 package-private
成员进行注入,因为它试图尽可能避免反射(原因是更少的反射意味着更好的性能,这是 Quarkus 努力实现的目标)。
有关详细信息,请参阅 this 指南的第 2 部分。