public static void main(String[] args) 方法,我们实际上是在探讨 Java 程序的入口点。这个方法有几个关键要素,每个都有其特定的原因和目的:static)?
main 方法必须是静态的,以便 JVM 可以在不创建任何对象的情况下直接调用它。public)?
public 关键字确保了方法可以被 JVM 访问。由于 main 方法由 JVM 在程序启动时调用,而不是由程序内部调用,所以它需要是公开的。void)?
main 方法不返回任何值给 JVM。它的任务是初始化程序,而程序的结束通常由返回一个退出状态来标识,这是通过调用 System.exit(int status) 实现的,而不是通过 main 方法的返回值。String[] args)?
main 方法。在 Spring Boot 应用中,情况稍有不同但基本原理相同:
Spring Boot 的启动过程:
main 方法依然是应用程序的入口点。该方法调用 SpringApplication.run,这是一个静态方法,用于引导和启动 Spring 应用。为什么使用 SpringApplication.run?
SpringApplication.run 封装了多个复杂的步骤,比如设置默认配置、启动 Spring 应用上下文等。Spring支持以下四种主要的Bean作用域:
Singleton(单例):
<bean>标签的scope属性指定为singleton**。
<bean id="exampleBean" class="com.example.ExampleBean" scope="singleton"/>
Prototype(原型):
<bean>标签的scope属性指定为prototype**。
<bean id="exampleBean" class="com.example.ExampleBean" scope="prototype"/>
Request(请求):
<bean>标签的scope属性指定为request**。
<bean id="exampleBean" class="com.example.ExampleBean" scope="request"/>
Session(会话):
<bean>标签的scope属性指定为session**。
<bean id="exampleBean" class="com.example.ExampleBean" scope="session"/>
这些作用域允许开发者按照应用程序的需求来配置Bean的生命周期。默认情况下,Bean是单例的,但根据业务需求,可以选择使用原型、请求或会话作用域。