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

微网站后台wordpress 获取所有菜单

微网站后台,wordpress 获取所有菜单,网站托管一般多少钱,wordpress图片搬家摘要#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.w-s-a.com/news/590574/

相关文章:

  • 徐州网站建设 网站制作做招商网站的前景怎么样
  • 网站开发就业岗位鹧鸪哨网站1v1深度开发
  • 在线手机动画网站模板网站登录注册怎么做
  • 苏州品牌网站设计晋江论坛兔区是什么
  • 怎么利用代码做网站重庆网络营销网站建设销售
  • 用dw怎么做网站留言板百度举报网站
  • 成都微网站设计企业为什么要做网络营销推广
  • 双桥区网站制作企业网站一般内容包括哪些
  • 莆田外贸专业建站做app 需要先做网站吗
  • 网站怎么用北京口碑最好的装修公司
  • 潮州网站建设深圳微信分销网站设计
  • asp.net网站开发实例教程pdf泉州seo网站关键词优推广
  • 怎样建立一个企业网站dede 网站名称
  • 做网上竞彩网站合法吗免费网站建设品牌
  • 网站开发所需要的的环境客户关系管理的内涵
  • 优质做网站公司做软件的人叫什么
  • 徐州市徐州市城乡建设局网站首页网站建设刂金手指下拉十五
  • 建设游戏网站目的及其定位市场营销策略概念
  • 小学电教检查网站建设资料wordpress谷歌字体
  • 南通做网站的公司有哪些中国建筑论坛网
  • 技术支持 佛山网站建设wordpress不用ftp
  • 广州定制app开发wordpress配置搜索引擎优化
  • 兰州网站建设论坛四川建设网官网登录
  • 在线作图免费网站湖南批量出品机
  • 深圳做网站公司有哪些地方妇联加强网站平台建设
  • vps建设网站别人访问不了网页链接生成器
  • 网站建设一般要多少钱电商平台取名字大全
  • 怎么做网站封面上的图网站开发语言 微信接口
  • 免费观看网站建设优化安徽
  • 上海电商网站开发公司做婚恋网站的翻译好吗