使用IDEA启动项目,首先找到项目中的启动类,其位于com.example.demo包下,名称为DemoApplication,主要代码如下。
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
这是一个非常标准的Spring Boot应用程序的启动类。代码的首行是@SpringBootApplication注解,这是一个组合注解,它包含了多个其他的Spring注解。其中最主要的3个注解如下。
@SpringBootConfiguration:表明这是一个Spring Boot配置类。
@EnableAutoConfiguration:启动Spring Boot的自动配置机制。这是Spring Boot的核心特性,它根据项目中的依赖自动配置应用程序。例如,如果你的classpath下有H2数据库和Spring Data JPA,Spring Boot会默认配置一个内存数据库和一个带有默认设置的EntityManager。
@ComponentScan:扫描当前包和所有子包中的组件,如@Component、@Service、@Repository和@Controller类。
接下来是主类的定义,通常命名为{YourProjectName}Application,但这不是强制的。这个类的目的是作为应用程序的入口点。类中定义了程序的main方法,这是Java程序的入口方法。当从命令行或IDEA运行一个Java程序时,它首先调用这个main方法。
在main方法中,调用了SpringApplication.run(DemoApplication.class, args);,这是启动Spring Boot应用程序的实际命令。
DemoApplication.class:是传递给run方法的参数,告诉Spring Boot这是启动类,Spring Boot应该从这里开始加载。
args:这是从main方法传递来的参数,允许命令行参数传递给Spring Boot应用程序。例如,你可以使用命令行参数来指定Spring Boot配置属性。
右击代码区域,在弹出的快捷菜单中选择Run 'DemoApplication.main()'或单击主类左侧的运行按钮,均可启动当前的SpringBoot项目。当运行此类时,Spring Boot会启动并初始化应用程序,加载Spring context,并启动所有配置的服务(如内嵌的Tomcat服务器),如图1-20所示。
项目启动后,会在IDEA的底部控制台出现启动日志,如图1-21所示。
这是一个典型的Spring Boot启动日志,从启动命令到应用程序完全启动,包含了各种关键信息。
Spring Boot标志与应用启动日志信息如下。
Spring Boot标志:这个美观的ASCII图标表示Spring Boot的启动。它还显示了当前使用的Spring Boot的版本(v3.1.3)。
应用程序启动信息:Starting DemoApplication using Java 17.0.8 with PID 17448 ...,应用程序DemoApplication使用Java 17.0.8启动,其进程ID是17448。
Spring Boot项目启动后,会自动开启内嵌的Tomcat服务器,其启动日志信息内容如下。
Tomcat initialized with port(s): 8080 (http):内嵌的Tomcat服务器初始化,监听8080端口。
图1-20 启动项目
图1-21 项目启动日志
Starting service [Tomcat]:Tomcat服务开始启动。
Starting Servlet engine: [Apache Tomcat/10.1.12]:Servlet引擎开始启动,使用的是Tomcat 10.1.12。
Initializing Spring embedded WebApplicationContext:Spring的WebApplicationContext开始初始化。
Root WebApplicationContext: initialization completed in 859 ms:WebApplicationContext初始化完成,花费了859毫秒。
当应用启动完毕后,会输出如下日志信息。
Tomcat started on port(s): 8080 (http) with context path:Tomcat完全启动,监听8080端口。
Started DemoApplication in 1.577 seconds (process running for 1.877):DemoApplication启动完成,启动耗时1.577秒。
上述所有日志提供了Spring Boot应用程序从开始启动到完全启动的整个过程的详细信息,这在诊断启动问题或了解应用程序启动的细节时非常有用。
至此,已经完成了Spring Boot项目从创建到运行的所有必要步骤。