|
|
|
@ -9,13 +9,13 @@
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// 声明该类所在的包名,在Java中包用于对类进行组织和分类管理,方便代码的模块化以及避免类名冲突等问题。
|
|
|
|
|
// 此处表明该类属于com.yami.shop这个包结构下,后续相关的类可以按照包的层次结构进行合理组织和查找。
|
|
|
|
|
package com.yami.shop.api;
|
|
|
|
|
|
|
|
|
|
// 引入Spring Boot相关的核心注解,用于标记这是一个Spring Boot应用程序,它会开启Spring Boot的自动配置等一系列功能,简化Spring应用的搭建和部署流程。
|
|
|
|
|
import org.springframework.boot.SpringApplication;
|
|
|
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
|
|
|
// 用于以编程方式构建Spring Boot应用程序,特别是在需要对应用的启动配置等进行更多定制化操作时会用到,比如配置应用的启动类、配置文件等信息。
|
|
|
|
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
|
|
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
|
|
|
// Spring Boot提供的一个用于支持将Spring Boot应用部署为Web应用(例如部署到Servlet容器中)的基础类,通常需要继承它来做相关的适配和初始化工作。
|
|
|
|
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
|
|
|
|
// 用于指定Spring需要扫描的组件所在的基础包路径,Spring会在这些包及其子包下查找带有相关注解(如 @Component、@Service等)的类,并将它们注册为Spring容器中的组件,便于进行依赖注入等操作。
|
|
|
|
@ -23,22 +23,28 @@ import org.springframework.context.annotation.ComponentScan;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author lgh
|
|
|
|
|
* 该类是整个API应用的启动类,负责启动Spring Boot应用,配置相关的组件扫描以及支持将应用部署到Servlet容器等功能。
|
|
|
|
|
* 该类是整个API应用的启动类,它承担着启动Spring Boot应用的核心职责,同时配置了相关的组件扫描机制以及提供了将应用部署到Servlet容器时所需的支持功能,是整个应用启动流程的关键入口点。
|
|
|
|
|
*/
|
|
|
|
|
// @SpringBootApplication是一个复合注解,它整合了多个Spring相关的注解,例如 @Configuration(表示这是一个配置类)、@EnableAutoConfiguration(开启Spring Boot的自动配置功能)以及 @ComponentScan(默认扫描当前类所在的包及其子包下的组件)等。
|
|
|
|
|
// 在这里使用它来标记这个类是Spring Boot应用的主配置类,Spring Boot会基于这个类进行一系列的启动和配置操作。
|
|
|
|
|
@SpringBootApplication
|
|
|
|
|
// 通过 @ComponentScan 注解指定Spring要扫描的基础包路径为 "com.yami.shop",意味着Spring会在这个包及其子包下查找并注册各种Spring组件(如控制器、服务类、数据访问层等)到Spring容器中,以便进行后续的依赖注入和业务逻辑处理。
|
|
|
|
|
// 这样可以确保我们自定义的各个业务组件能够被Spring正确识别并管理起来,方便在不同的组件之间进行依赖注入,实现各种业务功能。
|
|
|
|
|
@ComponentScan(basePackages = {"com.yami.shop"})
|
|
|
|
|
public class ApiApplication extends SpringBootServletInitializer {
|
|
|
|
|
|
|
|
|
|
// 应用的主入口方法,Java应用程序从这个方法开始执行。当运行这个类的 main 方法时,会启动Spring Boot应用,加载配置、初始化Spring容器并启动相关的Web服务等(如果是Web应用的话)。
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
// 使用SpringApplication类的静态方法 run 来启动Spring Boot应用,传入当前启动类(ApiApplication.class)以及命令行参数 args,Spring Boot会根据配置自动完成一系列的初始化和启动操作。
|
|
|
|
|
SpringApplication.run(ApiApplication.class, args);
|
|
|
|
|
}
|
|
|
|
|
// 应用的主入口方法,Java应用程序从这个方法开始执行。当运行这个类的 main 方法时,会启动Spring Boot应用,加载配置、初始化Spring容器并启动相关的Web服务等(如果是Web应用的话)。
|
|
|
|
|
// 它是整个应用启动的起始点,类似于传统Java应用中程序开始执行的地方,只不过在这里借助Spring Boot的功能来完成更复杂的应用启动流程。
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
// 使用SpringApplication类的静态方法 run 来启动Spring Boot应用,传入当前启动类(ApiApplication.class)以及命令行参数 args,Spring Boot会根据配置自动完成一系列的初始化和启动操作。
|
|
|
|
|
// 这个方法内部会执行诸如加载配置文件(application.properties或application.yml等)、创建Spring容器(ApplicationContext)、扫描并注册组件、启动嵌入式Web服务器(如果是Web应用)等一系列操作,使得整个应用能够正常运行起来。
|
|
|
|
|
SpringApplication.run(ApiApplication.class, args);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 重写SpringBootServletInitializer类中的configure方法,用于配置Spring Boot应用在Servlet容器中的启动方式,这里返回一个SpringApplicationBuilder对象,并指定应用的启动类为ApiApplication.class,以便在Servlet容器中正确地启动Spring Boot应用。
|
|
|
|
|
@Override
|
|
|
|
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
|
|
|
|
return builder.sources(ApiApplication.class);
|
|
|
|
|
}
|
|
|
|
|
// 重写SpringBootServletInitializer类中的configure方法,用于配置Spring Boot应用在Servlet容器中的启动方式,这里返回一个SpringApplicationBuilder对象,并指定应用的启动类为ApiApplication.class,以便在Servlet容器中正确地启动Spring Boot应用。
|
|
|
|
|
// 当将Spring Boot应用部署到外部的Servlet容器(如Tomcat、Jetty等)时,容器会调用这个方法来构建和配置Spring Boot应用,确保应用能够在该容器环境下正常启动和运行,实现与Servlet容器的良好集成。
|
|
|
|
|
@Override
|
|
|
|
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
|
|
|
|
return builder.sources(ApiApplication.class);
|
|
|
|
|
}
|
|
|
|
|
}
|