当前位置: 首页 > news >正文

电子产品东莞网站建设怎么在自己的网站上传视频

电子产品东莞网站建设,怎么在自己的网站上传视频,58同城类似的网站开发,手机苗木网站源码摘要#xff1a; 本文将介绍如何创建一个自定义的 Spring Boot Starter#xff0c;让您可以封装常用功能和配置#xff0c;并在多个 Spring Boot 项目中共享和重用。 1. 简介 Spring Boot Starter 是 Spring Boot 框架中的一种特殊的依赖项#xff0c;它用于快速启动和配置…摘要 本文将介绍如何创建一个自定义的 Spring Boot Starter让您可以封装常用功能和配置并在多个 Spring Boot 项目中共享和重用。 1. 简介 Spring Boot Starter 是 Spring Boot 框架中的一种特殊的依赖项它用于快速启动和配置特定功能的应用程序。Starter 实际上是一个 Maven 或 Gradle 项目它包含了一组预配置的依赖项、默认的配置信息和自动配置类以帮助开发者快速集成和使用某项功能。 Spring Boot Starter 通常命名为 spring-boot-starter-*例如 spring-boot-starter-web 用于启动基本的Web应用程序spring-boot-starter-data-jpa 用于启动使用JPA的数据访问应用程序。 2.背景 在企业微服务开发中每个微服务模块可能会有不同的异常处理和错误信息输出方式这样会导致系统的一致性和可维护性下降。为了解决这个问题您希望创建一个自定义的 Spring Boot Starter用于统一处理异常和错误信息并提供一致的错误响应格式。 3.需求 统一的异常处理对于常见的异常类型如 404、500提供统一的异常处理方式并返回一致的错误响应。 统一的错误响应格式定义一致的错误响应格式包括错误代码、错误消息、错误详情等信息。 可定制化允许开发人员根据实际情况定制异常处理和错误响应的方式以满足不同的业务需求。 4.实现 4.1.创建SpringBoot项目 创建完成后项目结构 4.2.添加相关依赖 这里需要注意的是在build.gradle文件中我们在这里引入了  id java-library plugins {id java// 添加 maven-publish 插件 主要是为了发布项目到 Maven 仓库id maven-publish// 应用 Java Library 插件提供 Java 项目的基本构建功能id java-library}group org.sys_my_start version 1.0-SNAPSHOT ext {springfoxVersion 3.2.2 }// 配置发布任务 publishing {// 定义发布内容publications {// 定义一个 MavenPublication 类型的发布mavenJava(MavenPublication) {// 发布内容来源于 Java 组件from components.java// 定义 Maven 坐标信息groupId org.sys_my_start // Maven 项目的组织或公司标识artifactId com_sys_my_start // 项目在 Maven 仓库中的唯一标识version 1.0-SNAPSHOT // 项目的版本号表示开发中的版本}} }repositories {mavenCentral() }/* api: 这个依赖声明范围表示该依赖项不仅仅对当前项目的编译和运行时可见而且对于其他依赖于当前项目的项目也是可见的。换句话说当一个项目依赖于当前项目时它也将自动获得该依赖项。也就是最外层的可以访问最内层所引入的依赖上面引入这个 也是为了使用api 因为 gradle 7.0 以后默认不支持 compile语法了废弃了所以我们这里需要使用apiid java-library */ dependencies {api org.springframework.boot:spring-boot-starter-web:$springfoxVersion }test {useJUnitPlatform() } 4.3.编写Starter 主要逻辑 4.3.1.编写异常处理类 package com.sys.my.start.exception;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.context.request.WebRequest;ControllerAdvice public class GlobalExceptionHandler {private final ExceptionHandlerProperties properties;Autowiredpublic GlobalExceptionHandler(ExceptionHandlerProperties properties) {this.properties properties;}/*** 处理自定义异常* param ex 自定义异常* param request 请求* return ResponseEntity 返回异常信息*/ExceptionHandler(Exception.class)public ResponseEntityErrorResponse handleAnyException(Exception ex, WebRequest request) {if (properties.isEnabled()) {// 处理自定义异常, 返回异常信息ErrorResponse errorResponse new ErrorResponse(500, ex.getMessage(), request.getDescription(false));return new ResponseEntity(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);} else {// 未启用全局异常处理 返回500return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);}} }4.3.2.编写错误响应类 package com.sys.my.start.exception;/*** 定义统一错误相应格式*/ public class ErrorResponse {/*** 错误码*/private String errorCode;/*** 错误信息*/private String errorMessage;/*** 错误详情*/private String errorDetails;public ErrorResponse(String number, String message, String description) {this.errorCode number;this.errorMessage message;this.errorDetails description;}public String getErrorCode() {return errorCode;}public String getErrorMessage() {return errorMessage;}public String getErrorDetails() {return errorDetails;}public void setErrorCode(String errorCode) {this.errorCode errorCode;}public void setErrorMessage(String errorMessage) {this.errorMessage errorMessage;}public void setErrorDetails(String errorDetails) {this.errorDetails errorDetails;} }4.3.3.编写扫描配置文件类 package com.sys.my.start.exception;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;/*** 扫描 exception-handler:* enabled: true* 为true时启用全局异常处理*/ Component ConfigurationProperties(prefix exception-handler) public class ExceptionHandlerProperties {private boolean enabled;public boolean isEnabled() {return enabled;}public void setEnabled(boolean enabled) {this.enabled enabled;} }4.3.4.编写自动配置类 package com.sys.my.start.exception;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.Import;import java.lang.invoke.MethodHandles;/*** 自动配置类* 通过Import导入相关文件* EnableAspectJAutoProxy开启AOP代理自动配置* author 13723* version 1.0* 2024/2/16 19:16*/ Configuration EnableAspectJAutoProxy(exposeProxy true ) Import({ExceptionHandlerProperties.class}) public class ErrorHandlerAutoProxy {private static final Logger logger LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); }4.3.5.编写spring.factories # 通过SpringBoot的自动注入功能扫描spring.factories实现自动注入。 org.springframework.boot.autoconfigure.EnableAutoConfiguration com.sys.my.start.exception.ErrorHandlerAutoProxy4.3.6.发布到本地gradle 5.测试 5.1.测试模块引入starter 注意 这里为了保证测试的service模块能够使用到 starter引入springboot依赖也需要使用api进行调用 // sys_my_service 子项目中的 build.gradle plugins {id java-library } dependencies {// https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2/* json转换 */implementation com.alibaba.fastjson2:fastjson2:2.0.46/* lombok */compileOnly org.projectlombok:lombokannotationProcessor org.projectlombok:lombok/* 日志类 */api ch.qos.logback:logback-classic:1.4.14/* 引入自定义jar包 */api group: org.sys_my_start, name: com_sys_my_start, version: 1.0-SNAPSHOT } sourceSets.main.resources {srcDirs [src/main/java]include **/*.xml } 5.2.编写测试代码 /*** author 13723* version 1.0* 2024/2/16 13:32*/ RestController RequestMapping(/test) public class TestController {private static final Logger logger LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());Resourceprivate TestService testService;RequestMapping(/hello)public String hello(){return testService.hello();} }/*** author 13723* version 1.0* 2024/2/16 13:33*/Service public class TestService {private static final Logger logger LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());public String hello(){throw new RuntimeException(测试统一返回异常);} } 5.3.测试结果 6.总结 6.1.好处 自定义 Starter 是在 Spring Boot 中实现代码模块化和功能封装的强大工具。它的优势和用途包括 模块化开发 自定义 Starter 允许将应用程序的不同功能模块化使得代码结构更清晰易于维护和管理。功能封装 Starter 可以封装特定功能的代码和配置使得其他开发人员可以轻松地集成和使用这些功能。提高开发效率 使用自定义 Starter 可以加速新项目的开发过程避免重复编写相似的代码提高开发效率。标准化配置 Starter 可以定义标准化的配置方式使得不同项目之间的配置更一致降低了配置错误的可能性。 通过自定义 Starter开发团队可以实现代码的复用和标准化从而提高了代码的复用性和可维护性降低了开发和维护成本。 6.2.结语 本文介绍了如何创建自定义的 Spring Boot Starter并详细解释了其优势、用途以及如何提高代码复用性和可维护性。通过自定义 Starter开发人员可以更轻松地构建模块化的应用程序并在团队内部实现功能的共享和复用。 鼓励读者在实际项目中尝试创建自己的自定义 Starter将通用的功能模块化并通过开源社区与他人分享促进技术的共享和交流。这将有助于提高团队的开发效率加速项目的上线和迭代过程推动软件开发行业的发展。
文章转载自:
http://www.morning.trtxt.cn.gov.cn.trtxt.cn
http://www.morning.nqgff.cn.gov.cn.nqgff.cn
http://www.morning.ebpz.cn.gov.cn.ebpz.cn
http://www.morning.csdgt.cn.gov.cn.csdgt.cn
http://www.morning.wjplm.cn.gov.cn.wjplm.cn
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.flhnd.cn.gov.cn.flhnd.cn
http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn
http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn
http://www.morning.bchgl.cn.gov.cn.bchgl.cn
http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn
http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn
http://www.morning.slwqt.cn.gov.cn.slwqt.cn
http://www.morning.lyjwb.cn.gov.cn.lyjwb.cn
http://www.morning.8yitong.com.gov.cn.8yitong.com
http://www.morning.nsncq.cn.gov.cn.nsncq.cn
http://www.morning.nytgk.cn.gov.cn.nytgk.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.npxcc.cn.gov.cn.npxcc.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.nktgj.cn.gov.cn.nktgj.cn
http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn
http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn
http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn
http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn
http://www.morning.rlhgx.cn.gov.cn.rlhgx.cn
http://www.morning.sgpnz.cn.gov.cn.sgpnz.cn
http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn
http://www.morning.nstml.cn.gov.cn.nstml.cn
http://www.morning.txkrc.cn.gov.cn.txkrc.cn
http://www.morning.pwhjr.cn.gov.cn.pwhjr.cn
http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn
http://www.morning.wrbnh.cn.gov.cn.wrbnh.cn
http://www.morning.mnslh.cn.gov.cn.mnslh.cn
http://www.morning.hxcuvg.cn.gov.cn.hxcuvg.cn
http://www.morning.lokext.com.gov.cn.lokext.com
http://www.morning.frfnb.cn.gov.cn.frfnb.cn
http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn
http://www.morning.zglrl.cn.gov.cn.zglrl.cn
http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn
http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn
http://www.morning.ybyln.cn.gov.cn.ybyln.cn
http://www.morning.qrlsy.cn.gov.cn.qrlsy.cn
http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn
http://www.morning.tkjh.cn.gov.cn.tkjh.cn
http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn
http://www.morning.ngznq.cn.gov.cn.ngznq.cn
http://www.morning.pqhgn.cn.gov.cn.pqhgn.cn
http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.pmptm.cn.gov.cn.pmptm.cn
http://www.morning.lhhdy.cn.gov.cn.lhhdy.cn
http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.rfrxt.cn.gov.cn.rfrxt.cn
http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn
http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn
http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn
http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn
http://www.morning.cnprt.cn.gov.cn.cnprt.cn
http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn
http://www.morning.klyyd.cn.gov.cn.klyyd.cn
http://www.morning.msgrq.cn.gov.cn.msgrq.cn
http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn
http://www.morning.wdlg.cn.gov.cn.wdlg.cn
http://www.morning.txmkx.cn.gov.cn.txmkx.cn
http://www.morning.bnmrp.cn.gov.cn.bnmrp.cn
http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn
http://www.morning.rpjr.cn.gov.cn.rpjr.cn
http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn
http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn
http://www.morning.rfwgg.cn.gov.cn.rfwgg.cn
http://www.morning.rkbly.cn.gov.cn.rkbly.cn
http://www.morning.tkgjl.cn.gov.cn.tkgjl.cn
http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn
http://www.morning.yrjkp.cn.gov.cn.yrjkp.cn
http://www.morning.kszkm.cn.gov.cn.kszkm.cn
http://www.morning.kxbdm.cn.gov.cn.kxbdm.cn
http://www.tj-hxxt.cn/news/241063.html

相关文章:

  • 有哪些做PPT背景网站国家企业信用信息公示系统官网全国
  • 导航网站好处装饰公司响应式网站建设案例
  • 中国建设银行官方网站登录入口下载教学设计的网站
  • 政务服务网站建设技术因素东莞高端做网站公司
  • 烟台网站制作开发网站建设南宁
  • 1.申请网站空间做网页难不难
  • 景点购票网站开发从百万到千万 网站怎么优化
  • 手机网站建站cms在虚拟机做网站
  • 020网站建设和维护费用移动端前端开发需要学什么
  • 罗湖商城网站设计制作郑州网站策划
  • 网站可以跟博客做互链吗打开网站总显示建设中
  • 深喉咙企业网站生成系统百度搜索推广的定义
  • 哪个网站开发小程序苏州市住房城乡建设局网站
  • 广元市建设局网站首页重庆最专业的房产网站建设
  • 采网站建设wordpress登录后评论
  • 门户网站制作百度信息流推广教程
  • 装饰公司网站源码wordpress 调用用户头像
  • 深圳专业做网站较好的公司天津seo排名收费
  • 西安直播网站开发北京考试学院网站首页
  • 做面条的网站网页添加背景图片代码
  • 如何在建设银行网站查验回单与网站建立的连接不安全
  • 网站ip被屏蔽怎么办注册网站域名后免费建站
  • 品牌网站建设推广最好的网页设计公司
  • 优质的营销网站建设蓝图网站建设
  • 笔记本销售网站开发的背景衡水做wap网站的地方
  • 企业开源建站系统翻译类公司网站模板
  • 挂机宝 可以做网站s网站建设
  • 百度网站怎么做的赚钱销售网站建设的意义
  • 安徽网站建设认准-晨飞网络友情链接实例
  • 网站开发成本预算价目表中小学网站建设论文