网站备案当面核验拍摄照片中山营销型网站设计

张小明 2025/12/30 23:35:06
网站备案当面核验拍摄照片,中山营销型网站设计,自助建个人网站哪个好,怎么把php网页源码下载在企业级应用开发中#xff0c;应用的启动过程往往需要进行精细化的控制和监控。Spring Boot 虽然提供了简化的启动方式#xff0c;但在实际生产环境中#xff0c;我们通常需要更多的启动信息、更好的错误处理和更优雅的启动管理。本文将详细介绍如何通过自定义事件监听器来…在企业级应用开发中应用的启动过程往往需要进行精细化的控制和监控。Spring Boot 虽然提供了简化的启动方式但在实际生产环境中我们通常需要更多的启动信息、更好的错误处理和更优雅的启动管理。本文将详细介绍如何通过自定义事件监听器来优化 Spring Boot 应用的启动过程。一、传统启动方式与优化启动方式对比1.1 传统启动方式SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }这种方式虽然简洁但缺乏对启动过程的控制错误处理也不够完善。1.2 优化后的启动方式Slf4j EnableScheduling SpringBootApplication public class Application { public static void main(String[] args) { try { SpringApplication application new SpringApplication(Application.class); // 添加应用启动事件监听器 application.addListeners(new StartupEventListener()); application.run(args); log.info( The project has been launched ); } catch (Exception e) { log.error(Application startup failed, e); System.err.println(Reason for startup failure: e.getMessage()); // 启动失败时退出应用 System.exit(1); } } }二、启动优化详解2.1 异常处理机制优化后的启动代码添加了完整的异常处理机制try-catch 块捕获启动过程中的所有异常详细日志记录使用 log.error 记录完整的异常堆栈控制台输出向控制台输出简化的失败原因优雅退出启动失败时调用System.exit(1)确保应用完全退出2.2 启动事件监听器2.2.1 监听器实现Slf4j public class StartupEventListener implements ApplicationListenerWebServerInitializedEvent { Override public void onApplicationEvent(WebServerInitializedEvent event) { Environment environment event.getApplicationContext().getEnvironment(); String appName environment.getProperty(spring.application.name, Unknown Application).toUpperCase(); int localPort event.getWebServer().getPort(); String profile StringUtils.arrayToCommaDelimitedString(environment.getActiveProfiles()); log.info(---[{}]--- Startup completed, current port: [{}]environment: [{}]---, appName, localPort, profile); } }2.2.2 监听器功能解析WebServerInitializedEvent在 Web 服务器Tomcat、Jetty 等初始化完成后触发应用名称获取从配置中读取spring.application.name默认为未知应用端口信息获取获取实际绑定的服务器端口环境信息获取获取当前激活的 Spring Profile格式化输出使用统一格式输出启动完成信息2.3 配置详解2.3.1 启动类注解Slf4jLombok 注解自动生成日志对象EnableScheduling启用定时任务功能SpringBootApplicationSpring Boot 核心注解包含组件扫描、自动配置等功能2.3.2 监听器注册通过application.addListeners(new StartupEventListener())将自定义监听器注册到 Spring 应用上下文中确保在适当的时间点被触发。三、实际应用场景3.1 多环境部署在微服务架构中通常会有多个环境开发、测试、生产通过监听器输出的环境信息可以快速确认应用当前运行的环境。3.2 端口监控当应用配置为随机端口或需要动态分配端口时监听器可以准确输出实际使用的端口号便于服务发现和注册。3.3 启动状态监控运维团队可以通过监听器输出的日志信息监控应用的启动状态和成功率。四、扩展与优化建议4.1 多监听器支持可以创建多个监听器分别处理不同的启动阶段ApplicationStartingEvent应用开始启动时ApplicationEnvironmentPreparedEvent环境准备完成时ApplicationPreparedEvent应用上下文准备完成时ApplicationStartedEvent应用启动完成时ApplicationReadyEvent应用准备就绪时4.2 错误处理的进一步优化分类处理异常根据异常类型采取不同的处理策略发送告警通知启动失败时通过邮件、短信或即时通讯工具通知相关人员记录诊断信息收集系统状态、配置文件等信息便于问题排查4.3 性能监控集成在启动过程中加入性能监控点记录各阶段的耗时为性能优化提供数据支持。五、总结通过自定义启动事件监听器和优化启动流程我们可以获得以下收益更好的可观测性详细的启动日志帮助快速定位问题更健壮的启动过程完善的异常处理确保启动失败时能够优雅退出更丰富的启动信息多维度信息输出满足不同角色的需求更好的运维支持为自动化运维和监控提供基础数据更高的可维护性清晰的代码结构和合理的职责分离这种优化方式特别适合微服务架构、容器化部署和企业级应用场景是构建可靠、可维护 Spring Boot 应用的重要实践之一。完整的代码StartupEventListenerpackage com.yang.listener; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.context.ApplicationListener; import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; /** * 应用启动事件监听器 * 在Web服务器初始化完成后触发输出应用启动信息 */ Slf4j public class StartupEventListener implements ApplicationListenerWebServerInitializedEvent { Override public void onApplicationEvent(WebServerInitializedEvent event) { Environment environment event.getApplicationContext().getEnvironment(); String appName environment.getProperty(spring.application.name, Unknown Application).toUpperCase(); int localPort event.getWebServer().getPort(); String profile StringUtils.arrayToCommaDelimitedString(environment.getActiveProfiles()); log.info(---[{}]--- Startup completed, current port: [{}]environment: [{}]---, appName, localPort, profile); } }package com.yang; import com.hzys.listener.StartupEventListener; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; Slf4j EnableScheduling SpringBootApplication public class Application { public static void main(String[] args) { // SpringApplication.run(Application.class, args); try { SpringApplication application new SpringApplication(Application.class); // 添加应用启动事件监听器 application.addListeners(new StartupEventListener()); application.run(args); log.info( The project has been launched); } catch (Exception e) { log.error(Application startup failed, e); System.err.println(Reason for startup failure: e.getMessage()); // 启动失败时退出应用 System.exit(1); } } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站开发公司基本业务流程图seo联盟平台

为什么你的Vitest测试总是神秘失败?三步解决命名冲突 【免费下载链接】vitest Next generation testing framework powered by Vite. 项目地址: https://gitcode.com/GitHub_Trending/vi/vitest 你是否遇到过这样的情况:Vitest测试明明代码逻辑正…

张小明 2025/12/29 1:23:15 网站建设

医疗网站备案网站停留时间

概述 本文报告了 rStar2-Agent 的开发和成果,这是一个专门用于数学推理的大规模语言模型。 尽管该模型的参数规模高达 140 亿个,但其性能却可与之前参数规模为 6710 亿个的模型所达到的一流水平相媲美。 这背后的原因是依赖冗长的思维链(CoT&…

张小明 2025/12/29 1:22:08 网站建设

让做网站策划没经验怎么办广西代理网站建设公司

Excalidraw浏览器兼容性测试报告(Chrome/Firefox/Safari) 在远程协作成为常态的今天,可视化工具早已不再是“锦上添花”,而是团队沟通的核心载体。无论是架构师勾勒系统蓝图,还是产品经理梳理用户流程,一张…

张小明 2025/12/29 1:21:34 网站建设

建立个人网站代码asp网站建设外文参考文献

场景:互联网大厂求职面试 在一间明亮的会议室里,面试官严肃地坐在桌子另一端,而小白程序员超好吃则有些紧张地坐在另一侧,开始了他的Java求职之旅。 第一轮提问 面试官:超好吃,你能简单解释一下Spring Boot…

张小明 2025/12/30 2:37:04 网站建设

vs网站开发 百度文库在线网页制作平台

FaceFusion实战:如何用GPU实现毫秒级人脸替换在直播滤镜、虚拟偶像和AI社交应用大行其道的今天,用户对“实时换脸”的期待早已从“能用”转向“丝滑”。你有没有遇到过这样的场景——打开一款换脸App,刚对准镜头,画面就开始卡顿掉…

张小明 2025/12/29 1:19:53 网站建设

网站怎样制作 优帮云建电子商城网站

目录已开发项目效果实现截图开发技术介绍核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果…

张小明 2025/12/29 1:19:20 网站建设