为什么我在这个java动态Web项目中看不到任何主要方法?

 asdfu_814 发布于 2023-02-06 19:22

我试图理解Web服务是如何工作的,我遇到了本教程

现在,我已经看到Spring正在企业应用程序中使用,并且总是想知道主要方法在哪里以及一切如何工作?每当我去Spring教程时,他们都将从beanFactory和Contexts开始,不是什么,所有这些都在主java方法中,并且从那里开始按需要继续获取bean.这与我在应用程序中看到的完全不同.

有人能告诉我在这种情况下弹簧是如何工作的.什么是通话顺序.我想某处会有一些隐藏的主要方法,但我不确定.

通常如果我从命令行运行一个简单的java项目,我会这样做java mainClass.现在,在这种情况下会发生什么.

谢谢

3 个回答
  • 还有一个主要方法,它不是由应用程序的开发人员编写的,而是由容器的开发人员编写的.

    您仍然可以通过使用调试器来查看调用的main方法,如下所示:

    在一些初始化方法中放置断点,例如某些servlet Servlet.init()的init方法

    当breapoint命中时,向下滚动调用轨迹,main方法应该在底部.

    这是一个码头的例子:

    在此输入图像描述

    为了看到这一点,我们需要将断点放在初始化方法中,以便我们获得应用程序的主线程.

    将断点放在请求处理而不是初始化方法中会在堆栈跟踪的底部显示Thread.run()而不是main().

    Thread.run()等同于主线程以外的线程的主方法.

    因此主要方法仍然存在,它只是在容器级别处理.

    2023-02-06 19:24 回答
  • 您没有看到任何显式main方法,因为它是一个Web项目.该项目内置于Web应用程序归档(WAR)文件中,该文件部署到Web服务器/ servlet容器中,例如本教程中的Tomcat.

    Web应用程序不必包含main方法.这是因为您不需要从Web应用程序中显式启动任何Java进程.在深度的某个地方,Tomcat调用了一个main由它构建的代码的方法.这发生在服务器启动时.

    然后,它会将您的代码绑定到传入的HTTP调用,但它不会为此启动新进程.它宁愿开始新的线程.

    2023-02-06 19:24 回答
  • Web应用程序没有main; 正在运行的"程序"实际上是Web容器(Apache Tomcat,Glassfish,JBoss,Weblogic等等),该程序将为您部署到其中的Web应用程序提供服务.您可能希望阅读JEE教程以了解和理解Java Web环境是什么.

    https://docs.oracle.com/javaee/7/tutorial/

    2023-02-06 19:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有