- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我见过很多次 JAXRS 资源的配置方式。
我的意思是,有时我看到它们被注释为 @Singleton
、@Stateless
、@ApplicationScoped
、@RequestScoped
,甚至没有任何注释或同时使用它们。
javax.enterprise.context.RequestScoped
javax.enterprise.context.ApplicationScoped
javax.ejb.Stateless
javax.ejb.Singleton
javax.inject.Singleton
我应该使用哪个注解?
javax.ejb
与 JAXRS 资源有什么关系?
另一方面,我也想知道如何准确地使用 @Context
注释。
我的意思是,我已经看到这个应用于参数,也在类字段中。
@Path("entity")
public class EntityResource {
@Context
private Request request;
@POST
public Response create(Entity entity) {
this.request...
}
}
或者,
@Path("entity")
public class EntityResource {
@POST
public Response create(Entity entity, @Context Request request) {
request...
}
}
我将如何进行?
最佳答案
无需在 JAX-RS 资源类中使用任何 EJB 或 CDI 注释 - 除非您想在同一类中使用 EJB 或 CDI 功能。
如果要在资源类中注入(inject)任何CDI bean,那么资源类本身必须是一个CDI bean,所以要加scope注解,最好是@javax.enterprise.context.RequestScoped
.
如果您使用像 @Stateless
这样的 EJB 注释,注入(inject)也将起作用,因为 EJB 也是 CDI bean(但反之则不然)。但是,无状态 bean 具有不同的生命周期,默认情况下它是事务性的。
另一方面,如果你需要事务,你也可以结合使用@javax.transaction.Transctional
和@RequestScoped
和@Path
.
背景:
EJB 对于大多数用途来说有点过时了。它们出现在 JAX-RS 和 CDI 之前,但如今,CDI 被视为 Java EE/Jakarta EE 中的统一依赖注入(inject)机制,并且正在更新旧规范以与 CDI 更紧密地集成。
关于java - JAX-RS:Stateless、Singleton、RequestScoped 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531212/
我乞求使用primefaces,在remoteCommand的这段代码中,我看到#{requestScope.shouldRender},我很困惑 我见
这个问题在这里已经有了答案: Backing beans (@ManagedBean) or CDI Beans (@Named)? (5 个答案) 关闭 4 年前。 我注意到我可以通过使用来自 @
在 JSF2 中,如何将对象从一个请求范围的 bean 传递到另一个请求范围的 bean?我真的不想让它们成为 session 范围的。 也许我可以将一个 bean 注入(inject)另一个? 谢谢
假设我们有一个类: @RequestScoped public class FooService { private NonThreadSafeGenerator generator = n
我正在使用带分页功能的 PrimeFaces 和 Datatable。我有一个支持 bean 的请求范围,当我浏览数据表时,数据消失了(没有任何内容可显示)。我以为数据表只是 Ajax 检索整个数据列
我正在使用 guice-servlet (2.0) 在每个 HTTP 请求开始时注入(inject)一个数据库连接,但是我怎样才能知道请求何时结束以便关闭连接? web.xml Guice
我正在学习使用 JAX-RS 进行一些 Restful api 开发,但我的资源类存在问题。 我的理解是我的资源类应该是 RequestScoped,但是,当它是 RequestScoped 时,我对
在 JSTL 中,您可以在组件中设置变量,这些变量可用于同一请求中的所有其他组件。在 AEM 中使用 sightly 是否有等效的方法在组件之间传递数据? (我们正在研究的用例是我们希望一个组件知道何
我有一个带有 List 属性的 @RequestScoped bean。 import javax.faces.bean.ManagedBean; import javax.faces.bean.Re
编辑4 我想做的是实现forgotPassword页面。例如,我采用了下面的示例,这不是真正的用户相关问题,我将用户名保留在 session 范围内。 index.xhtml将是忘记密码页面,我将在其
我正在开发一个用 @RequestScope 注释的 Service 类,问题是有一个方法需要很长时间才能继续,我想知道是否可以在该部分的哪一部分创建新线程代码将被执行。 我尝试过使用 Managed
我正在尝试创建一个日志服务来存储两个变量,我将在 http 请求的生命周期中使用它们。问题是我无法更改字段。我尝试了 setter 、初始化方法,我可以在调试器中看到值的变化,但在退出方法后,字段为空
这是我在这个美丽的网站上的第一个问题。我用谷歌搜索了很多,但没有找到任何解决方案。 我是 JSF 的新手,正在通过 Kent Ka lok Tong 的“JSF 2 API 和 JBoss Seam”
我的目标是呈现一个具有创建、检索和更新功能的 jsf 页面。我决定为每个操作创建不同的 CDI bean 和不同的复合组件,然后将它们全部放在页面中。 到目前为止一切顺利,但我刚刚完成,我发现了一个非
如果我创建一个用 @RequestScoped 注释的 bean,我希望它会为每个新请求实例化一个新的代理实例。 另一方面,每个请求都与它自己的线程相关联。 我的问题是:如果新请求重用池中先前创建的线
我写了一个 ViewScoped Managed-Bean,每次我在我的网络浏览器中刷新页面时,Managed-Bean 似乎被重新创建,文章为空,它加载一个新的文章对象等等。对我来说,它看起来与 R
package com.atlanticpkg.view.beans; import com.atlanticpkg.controller.ejb.ContactsFacade; import com
我有一个 JSF 页面并有一个与其关联的 Managedbean。 我的 xhtml 页面如下所示:
我观察到下面描述的我的 requestScoped bean 在单个请求期间被创建了多次。每次重新实例化 bean 时,正如日志所说,就在不久之前,bean 被销毁了。 @ManagedBean(na
我的 JEE 6 应用程序正在使用 CDI 以及带有嵌入式 tomee (1.7.2) 的 Arquillian 对其进行测试。在具有多个测试方法的测试类中,同一个 Request Scoped Be
我是一名优秀的程序员,十分优秀!