From 59e24c8b62142432e82d07e43bc95cb2d893c176 Mon Sep 17 00:00:00 2001 From: pbvfus8to <480171784@qq.com> Date: Wed, 18 Dec 2024 10:32:57 +0800 Subject: [PATCH] Update WebApplication.java --- .../com/yami/shop/admin/WebApplication.java | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/yami-shop-admin/src/main/java/com/yami/shop/admin/WebApplication.java b/yami-shop-admin/src/main/java/com/yami/shop/admin/WebApplication.java index 3a4029a..10516ca 100644 --- a/yami-shop-admin/src/main/java/com/yami/shop/admin/WebApplication.java +++ b/yami-shop-admin/src/main/java/com/yami/shop/admin/WebApplication.java @@ -8,6 +8,7 @@ * 版权所有,侵权必究! */ +// 该类所属的包名,表明其处于管理端相关的包下,作为整个Web应用的启动类所在的位置 package com.yami.shop.admin; import org.springframework.boot.SpringApplication; @@ -20,31 +21,45 @@ import org.springframework.context.annotation.ComponentScan; /** * @author lgh - * 这是一个Spring Boot应用的启动类,用于启动整个Web应用,通常包含了应用的配置、启动逻辑等相关内容。 + * 这是一个Spring Boot应用的启动类,作为整个Web应用的入口点,负责启动和配置整个应用。 + * 它整合了诸多Spring Boot相关的配置和启动逻辑,使得应用能够按照预设的配置和自动配置机制进行初始化, + * 加载各种组件、配置缓存(如果启用了缓存功能)以及与外部Servlet容器进行集成(如果以WAR包形式部署)等操作。 */ +// @SpringBootApplication是一个组合注解,相当于同时使用了@Configuration、@EnableAutoConfiguration和@ComponentScan这三个注解, +// 下面分别对其作用进行详细解释: +// @Configuration注解表明这个类是一个Java配置类,可用于定义Spring容器中的Bean以及配置相关的信息,类似于传统的XML配置文件的作用。 +// @EnableAutoConfiguration注解开启Spring Boot的自动配置功能,它会根据项目中添加的依赖以及一些默认的配置规则,自动配置Spring应用的各种组件, +// 例如,自动配置数据源、Web相关组件等,极大地减少了手动配置的工作量。 +// @ComponentScan注解用于指定Spring要扫描的基础包路径,在这里表示会扫描com.yami.shop及其子包下的所有组件(比如使用@Component、@Service、@Repository、@Controller等注解标注的类), +// 找到这些组件后会将它们纳入Spring容器进行管理,使得它们能够在应用中被自动注入和使用。 @SpringBootApplication -// @SpringBootApplication注解是一个组合注解,相当于同时使用了@Configuration、@EnableAutoConfiguration和@ComponentScan, -// 它表明这个类是一个Spring Boot应用的配置类,并且开启自动配置以及组件扫描功能。 +// 通过@ComponentScan注解指定Spring要扫描的基础包路径为com.yami.shop及其子包,确保应用中的各种组件能被正确扫描并加载到Spring容器中进行管理。 @ComponentScan("com.yami.shop") -// @ComponentScan注解用于指定Spring要扫描的基础包路径,在这里表示会扫描com.yami.shop及其子包下的所有组件(比如@Component、@Service、@Repository等标注的类), -// 以便将这些组件纳入Spring容器进行管理。 +// @EnableCaching注解用于开启Spring的缓存功能,当应用中需要使用缓存来提高性能,比如缓存数据库查询结果、方法返回值等情况时,启用此注解后, +// 可以通过在相应的方法上使用缓存相关注解(如@Cacheable、@CachePut、@CacheEvict等)来配置缓存策略。在这里表示应用开启了缓存功能,后续可按需配置具体的缓存细节。 +@EnableCaching public class WebApplication extends SpringBootServletInitializer { /** - * 应用的主入口方法,Java应用程序从这里开始执行,会启动Spring Boot应用,传入当前类(WebApplication.class)以及命令行参数(args), - * Spring Boot会根据配置和自动配置机制来初始化整个应用上下文,加载各种组件并启动Web服务器(如果是Web应用的话)等相关操作。 + * 应用的主入口方法,Java应用程序从这里开始执行。 + * 它调用SpringApplication的静态方法run来启动Spring Boot应用,传入当前类(WebApplication.class)作为配置类,以及命令行参数(args)。 + * Spring Boot会基于这个配置类,按照自动配置机制去查找和加载各种配置信息、初始化应用上下文, + * 然后加载所有被@ComponentScan扫描到的组件,配置各种中间件(如Web服务器,如果是Web应用的话),最终启动整个应用。 + * + * @param args 命令行参数,可用于在启动应用时传入一些自定义的配置信息或运行参数等,例如指定应用的运行环境(开发、测试、生产等)、端口号等。 */ public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } /** - * 当应用以WAR包形式部署到外部的Servlet容器(如Tomcat等)时,需要重写这个方法来配置Spring应用的启动构建器。 - * 在这里返回的SpringApplicationBuilder会指定启动的主类(即WebApplication.class),以便容器能够正确加载和启动应用。 + * 当应用以WAR包形式部署到外部的Servlet容器(如Tomcat、Jetty等)时,需要重写这个方法来配置Spring应用的启动构建器。 + * 在这里,它返回的SpringApplicationBuilder会指定启动的主类(即WebApplication.class), + * 这样外部的Servlet容器就能通过这个构建器正确地加载和启动Spring应用,将应用的上下文与容器进行整合, + * 确保应用能够在外部容器的环境下正常运行,并且能够利用容器提供的各种资源和功能。 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(WebApplication.class); } - } \ No newline at end of file