gpt4 book ai didi

java - .java 术语和随机词澄清

转载 作者:行者123 更新时间:2023-12-02 00:43:56 24 4
gpt4 key购买 nike

我对 java、jsf、jsp 很陌生,我需要快速学习它是如何工作的。因此,我用来练习的网站有一些术语等,我不知道它们的含义,我希望有人可以解释它们的含义以及它们的用途:)

Requestscoped
Applicationscoped
Sessionscoped
EntityManager

有人可以引导我了解这些行的作用吗?

@RequestScoped
public class Dao {

@DataRepository
@Inject
private EntityManager entityManager;

最佳答案

首先,在 Java(5 及更高版本)中,“事物”以 @ 开头。 (例如 @Deprecated )称为 annotations .

Annotations provide data about a program that is not part of the program itself. They have no direct effect on the operation of the code they annotate.

如果您想在 JSF 中使用 JavaBean,则需要将其配置到一个范围(定义可以在 here 中找到)。

  • @RequestScoped :具有此范围的对象从请求开始到结束都是可见的的请求。请求范围从请求开始时开始,到请求结束时结束响应已发送至客户端。如果请求被转发,则对象可见在转发的页面中,因为该页面仍然是同一请求/响应的一部分循环。具有 request 范围的对象可以使用其他具有 none、request、session 范围的对象,或应用范围。如果您必须从 servlet 的角度来思考,则托管 bean 存储在 HttpServletRequest 中直到请求结束(当响应发送到客户端时)。此后,该 bean 不再存在于请求中。
  • @SessionScoped :具有 session 范围的对象对于任何请求/响应周期都是可见的属于一个 session 。具有此范围的对象的状态在请求并持续到对象或 session 失效为止。具有 session 的对象作用域可以使用其他具有 none、session 或 application 作用域的对象。基本上,这些对象存储在 HttpSession 中(再次引用 Servlet)。每个 session 都有一个与 Bean 关联的 session ID(称为 JSESSIONID )。
  • ApplicationScoped :具有应用程序范围的对象在所有请求/响应周期中都可见对于使用该应用程序的所有客户端,只要该应用程序处于 Activity 状态。就 Servlet 而言,这可能是存储在 ServletConfig 中的托管 bean。 .
  • @NoneScoped :具有此范围的对象在任何 JSF 页面中都不可见。当在配置文件中使用时,它们指示由应用程序中的其他托管 Bean 使用的托管 Bean。无作用域的对象可以使用其他无作用域的对象。
<小时/>

对于 EntityManager ,这与持久化上下文相关。它用于创建和删除持久实体实例、通过主键标识查找实体以及查询所有实体。有关更多信息,请参阅 JPA(Java Persistence API)规范,或 Hibernate .

@Inject ,意味着该实例是可注入(inject)的。它们遵循臭名昭著的粗俗词“依赖注入(inject)”或“控制反转(IOC)”。这基本上意味着,当需要资源(在您的情况下 EntityManager entityManager )时,JEE 容器会为您实例化资源(无需您直接通过构造函数等实例化它)。

我不知道什么@DataRepository方法。以前没见过。

希望这对您有帮助。

关于java - .java 术语和随机词澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com