为什么main()在struts2的action类中不是必需的?

问题描述:

* 你好! *为什么main()在struts2的action类中不是必需的?

通常情况下,一个java程序需要main()函数来执行代码,否则会返回一个错误[java.lang.NoSuchMethodError:线程main中的main异常] ..!在struts2中,我们使用动作类& bean类(java代码),但它们不需要main()函数。这个背后的概念是什么?顺便说一下,我是Struts框架的新手。

这是因为Struts框架提供了基础设施,以获取应用程序启动和运行。作为框架的用户,您可以实现由框架代码调用的特定类。

Struts本身运行在应用程序服务器(如Tomcat)中,通常它是包含最终负责启动应用程序的main()方法的服务器。

这是inversion of control一个例子 - 许多应用程序框架,以这种方式工作。

你需要在应用的main()方法从命令行启动因为这是该JVM期望在这种情况下,执行API。在其他框架中调用的代码必须实现框架期望的任何API。在许多情况下,该框架实现main()并通过其他一些API调用您的代码。这通常比public void main(String[] args)允许更强大。在其他实例中,框架本身是从另一个抽象(例如,应用程序容器内的Web框架内的Web应用程序)调用的。

+0

非常感谢您的回答,我已澄清我的疑问..! – 2012-02-22 05:15:23