Struts2 struts 2 action类是否使用了多种方法?

Struts2 struts 2 action类是否使用了多种方法?,struts2,Struts2,我对struts1.x很有经验,在这里,所有动作类默认都是单例行为。 通过扩展DispatchAction类,我们可以在一个action类中编写多个方法,这样对这些方法的任何数量的请求都将只创建一个对象并共享所有实例成员 但是在Struts2中,有一个特点是可以编写多种方法。 在struts2中,将为每个请求创建新实例。那么在一个动作类中编写多个方法有什么用呢? 每个方法可能有多个实例成员,如果您将它们合并并创建一个对象,那么每次创建对象都会占用大量内存。 你能告诉我在Struts2.x中的单个

我对struts1.x很有经验,在这里,所有动作类默认都是单例行为。
通过扩展DispatchAction类,我们可以在一个action类中编写多个方法,这样对这些方法的任何数量的请求都将只创建一个对象并共享所有实例成员

但是在Struts2中,有一个特点是可以编写多种方法。
在struts2中,将为每个请求创建新实例。那么在一个动作类中编写多个方法有什么用呢?
每个方法可能有多个实例成员,如果您将它们合并并创建一个对象,那么每次创建对象都会占用大量内存。

你能告诉我在Struts2.x中的单个动作类中编写许多方法有什么用吗

即使在struts1动作类中也允许在struts2中使用多个方法的原因与对象创建(动作类)无关。原因是帮助开发人员将在单个类中执行类似操作的操作分组。例如,如果您有一个实体,如
产品
,您可能希望
创建
修改
删除
产品。出于代码组织的目的,如果您在单个操作类中有这些操作,即创建、修改和删除,那么它将是干净的。
因此,对于每个请求,都会创建一个action类的实例,并在服务请求后将其销毁。

即使在struts1 action类中也允许在struts2中使用多个方法的原因与对象创建(action类)无关。原因是帮助开发人员将在单个类中执行类似操作的操作分组。例如,如果您有一个实体,如
产品
,您可能希望
创建
修改
删除
产品。出于代码组织的目的,如果您在单个操作类中有这些操作,即创建、修改和删除,那么它将是干净的。
因此,对于每个请求,都会创建一个action类实例,并在服务请求后将其销毁。

Struts1和Struts2的设计方式和编写action类的方式有很大不同

Actions基本上代表一组相关操作的用户操作。这是一个以良好方式对应用程序进行模块化的功能。虽然您可以在action类中自由定义单个方法,但我相信它会以良好方式破坏action类的用途

e、 假设我们想要开发一个用户管理功能,包括

  • 用户注册
  • 用户更新
  • 其他一些用户功能
  • 如果我们仔细观察,我们将创建一个用户bean来保存与用户相关的属性,现在我们需要考虑ActionClass的设计。 我将使用以下方法创建一个
    UserManagementAction

  • createUser
  • 更新程序
  • 任何其他此类方法
  • 在我看来,这种方法将集中化用户管理系统,因为所有这些方法都与用户管理功能相关,而且动作类的所有组件都是可用的,如用户bean、用户服务等,因为它们是特定于用户的,并且将在所有方法调用中使用

    另一方面,对于第二个appraoch,我们只有一个选择,比如为每个功能创建操作,比如

  • 用户注册操作
  • 更新操作
  • 在所有这些操作中,我们复制了biz DTO的服务类和任何其他实用工具方法的大部分内容,除了痛苦之外,还有许多操作和一些不必要的配置


    简言之,它决定了设计和开发应用程序的方式和方式。

    Struts1和Struts2的设计方式和编写动作类的方式有很大不同

    Actions基本上代表一组相关操作的用户操作。这是一个以良好方式对应用程序进行模块化的功能。虽然您可以在action类中自由定义单个方法,但我相信它会以良好方式破坏action类的用途

    e、 假设我们想要开发一个用户管理功能,包括

  • 用户注册
  • 用户更新
  • 其他一些用户功能
  • 如果我们仔细观察,我们将创建一个用户bean来保存与用户相关的属性,现在我们需要考虑ActionClass的设计。 我将使用以下方法创建一个
    UserManagementAction

  • createUser
  • 更新程序
  • 任何其他此类方法
  • 在我看来,这种方法将集中化用户管理系统,因为所有这些方法都与用户管理功能相关,而且动作类的所有组件都是可用的,如用户bean、用户服务等,因为它们是特定于用户的,并且将在所有方法调用中使用

    另一方面,对于第二个appraoch,我们只有一个选择,比如为每个功能创建操作,比如

  • 用户注册操作
  • 更新操作
  • 在所有这些操作中,我们复制了biz DTO的服务类和任何其他实用工具方法的大部分内容,除了痛苦之外,还有许多操作和一些不必要的配置


    简言之,设计和开发应用程序的方式和方式取决于设计决策。

    但性能问题将随之而来。因为每个方法可能有10个实例成员,因此创建对象的内存将是创建一个方法的3倍。。那么如何克服呢?@laxmannchowdary我认为遵循这种模式不会出现性能问题。我可能错了,我认为创建和销毁对象比在内存中保存这么长时间更容易。因为这样的创建和销毁周期只需要几分之一秒或更长时间