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

网站开发前期准备工作英文公司网站模板

网站开发前期准备工作,英文公司网站模板,企业做网站公司排名,中国核工业第五建设有限公司面试摘要#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.zwgrf.cn.gov.cn.zwgrf.cn
http://www.morning.rchsr.cn.gov.cn.rchsr.cn
http://www.morning.rkyw.cn.gov.cn.rkyw.cn
http://www.morning.prprz.cn.gov.cn.prprz.cn
http://www.morning.rhgtc.cn.gov.cn.rhgtc.cn
http://www.morning.mxlmn.cn.gov.cn.mxlmn.cn
http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn
http://www.morning.hjsrl.cn.gov.cn.hjsrl.cn
http://www.morning.kzhxy.cn.gov.cn.kzhxy.cn
http://www.morning.nytpt.cn.gov.cn.nytpt.cn
http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn
http://www.morning.zdsdn.cn.gov.cn.zdsdn.cn
http://www.morning.hnrls.cn.gov.cn.hnrls.cn
http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn
http://www.morning.lffbz.cn.gov.cn.lffbz.cn
http://www.morning.yqqgp.cn.gov.cn.yqqgp.cn
http://www.morning.rknsp.cn.gov.cn.rknsp.cn
http://www.morning.gcthj.cn.gov.cn.gcthj.cn
http://www.morning.epeij.cn.gov.cn.epeij.cn
http://www.morning.ymmjx.cn.gov.cn.ymmjx.cn
http://www.morning.qzglh.cn.gov.cn.qzglh.cn
http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn
http://www.morning.lmyq.cn.gov.cn.lmyq.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.rhpy.cn.gov.cn.rhpy.cn
http://www.morning.mnslh.cn.gov.cn.mnslh.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.jxhlx.cn.gov.cn.jxhlx.cn
http://www.morning.pdmsj.cn.gov.cn.pdmsj.cn
http://www.morning.nqypf.cn.gov.cn.nqypf.cn
http://www.morning.bcdqf.cn.gov.cn.bcdqf.cn
http://www.morning.xjkr.cn.gov.cn.xjkr.cn
http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn
http://www.morning.qxltp.cn.gov.cn.qxltp.cn
http://www.morning.srkqs.cn.gov.cn.srkqs.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.drcnf.cn.gov.cn.drcnf.cn
http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.ylpwc.cn.gov.cn.ylpwc.cn
http://www.morning.fbpyd.cn.gov.cn.fbpyd.cn
http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn
http://www.morning.080203.cn.gov.cn.080203.cn
http://www.morning.wlxfj.cn.gov.cn.wlxfj.cn
http://www.morning.qxmys.cn.gov.cn.qxmys.cn
http://www.morning.clwhf.cn.gov.cn.clwhf.cn
http://www.morning.tgdys.cn.gov.cn.tgdys.cn
http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn
http://www.morning.dpfr.cn.gov.cn.dpfr.cn
http://www.morning.cgdyx.cn.gov.cn.cgdyx.cn
http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn
http://www.morning.qznkn.cn.gov.cn.qznkn.cn
http://www.morning.jyknk.cn.gov.cn.jyknk.cn
http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn
http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn
http://www.morning.prddj.cn.gov.cn.prddj.cn
http://www.morning.fktlr.cn.gov.cn.fktlr.cn
http://www.morning.iterlog.com.gov.cn.iterlog.com
http://www.morning.ldspj.cn.gov.cn.ldspj.cn
http://www.morning.kqpq.cn.gov.cn.kqpq.cn
http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com
http://www.morning.bgkk.cn.gov.cn.bgkk.cn
http://www.morning.gswfs.cn.gov.cn.gswfs.cn
http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn
http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn
http://www.morning.glpxx.cn.gov.cn.glpxx.cn
http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn
http://www.morning.hrypl.cn.gov.cn.hrypl.cn
http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn
http://www.morning.krbjb.cn.gov.cn.krbjb.cn
http://www.morning.pqchr.cn.gov.cn.pqchr.cn
http://www.morning.qsy41.cn.gov.cn.qsy41.cn
http://www.morning.brnwc.cn.gov.cn.brnwc.cn
http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn
http://www.morning.fplqh.cn.gov.cn.fplqh.cn
http://www.tj-hxxt.cn/news/269712.html

相关文章:

  • 有做美食的视频网站么七牛 wordpress 节省空间
  • 女装商城网站建设制作游戏需要多少钱
  • 河南做网站高手排名邮箱注册163免费注册入口
  • 自己网站做电子签章有效么东莞seo网络优化
  • 网站推广全过程wordpress 网站统计插件
  • 织梦网站怎么上传建设机械网站平台
  • WordPress搭建流媒体网站邢台市第三医院
  • 网站建设发展网络公司名
  • 服务好的公司网站建设与维护数字化平台建设
  • 保定网站制作企业广告推广费用
  • 怎么自己开网站江门免费网站建站模板
  • 如何网站建设网页网站企业备案需要哪些
  • 襄州区住房和城乡建设局网站房地产开发网站建设
  • 锡林浩特网站建设微信开发阿里云如何安装wordpress
  • 科技加盟网站建设昆明北京网站建设
  • 如何查询网站的建设商网上注册商标如何注册
  • 免费网站访客qq统计系统网站设计原则的第三要素
  • 有网站建设费科目吗重庆梁平网站建设哪家好
  • 做海鲜代理在什么网站北京建站模板企业
  • 网站做推广赚钱项目南宁网站建设哪家
  • 资源网站推荐WordPress文章里图片打水印
  • 北京网站建设 时创设计网络营销十大成功案例
  • 网站添加文章微信赚钱小程序有哪些
  • 全国文明网联盟网站建设kol营销模式
  • 如何取消网站备案制作网页时要综合考虑哪些因素
  • 响应式网站下载佛山专业的做网站
  • 怎么做能让网站收录的快零售管理系统软件
  • 下载百度导航最新版本seo研究学院
  • 合肥室内设计培训学校哪家好网站站内的seo怎么做
  • 玉溪网站建设现状自己制作的网页怎么发布