如果没有在JAX-RS资源上指定@ApplicationScoped
,下面的行,ManagedExecutorService
的@Resource注入不会发生,我遇到了NullPointerException
。
但是当我添加@ApplicationScoped
和@Path
时,我可以看到ManagedExecutorService
资源注入已经正确发生。
当只使用@Path("/uri")
和@Path("/uri")
与@ApplicationScoped
/ @RequestScoped
一起使用时,请帮助找出JAX-RS资源之间的区别。
使用的IDE和服务器分别是Netbeans和Glassfish 5。
资源类实例的生命周期由CDI或JAX-RS管理。在资源类上添加@ApplicationScoped
后,它将由CDI管理。多数民众赞成。如果不是CDI管理,你不能注入CDI @Resource
。
资源只能注入容器托管类。