Java项目gateway.util工具开发指南

需积分: 12 0 下载量 194 浏览量 更新于2024-10-26 收藏 85KB ZIP 举报
资源摘要信息:"gateway.util是Java语言编写的项目,主要用途是托管各种常见的实用程序代码。该项目构建的基本要求包括安装Java SE开发工具包(JDK)7或更高版本。构建此项目的步骤可以分为三个主要环节,首先是克隆仓库,然后使用mvn进行全新安装,最后是运行项目。如果想要将此组件集成到gateway.distribution项目中,需要通过更新***y.distribution的pom文件中的版本实现,构建对应的gateway.distribution并用于应用开发。" 知识点详细说明: 1. Java SE 开发工具包 (JDK): - JDK是Java语言开发环境的标准,提供了编译、调试和运行Java程序的工具。 - JDK7及以上版本为开发环境提供了更加全面和现代化的功能。 - JDK包含了Java运行时环境(JRE),同时还有编译器(javac)、文档生成工具(javadoc)等开发工具。 - 了解JDK版本特性对于Java项目开发至关重要,尤其是在向后兼容性方面。 2. Maven构建工具: - Maven是一种项目管理和综合自动化构建工具,主要服务于Java项目。 - 它使用预定义的构建生命周期,可以通过简单的配置文件(pom.xml)来管理项目的构建、报告和文档。 - Maven依赖管理功能强大,可以自动下载项目依赖的库,从而简化构建过程。 - maven install命令用于本地安装项目,确保本地仓库中存在项目构件,便于其他项目引用。 3. Git版本控制: - Git是一个分布式版本控制系统,用于跟踪计算机文件的更改和协调多人之间的工作。 - 通过Git可以克隆仓库,这是指复制一个远程仓库到本地,使其可以在本地进行开发工作。 - Git仓库可以是公开的,也可以是私有的,为项目成员提供了一种高效协作的方式。 4. 代码集成与版本管理: - 将gateway.util项目集成到gateway.distribution中涉及版本控制,确保版本的一致性和项目的稳定性。 - 更新***y.distribution的pom.xml文件来引用新的gateway.util版本,可以实现项目的依赖管理。 - 构建gateway.distribution涉及到从其pom文件所描述的依赖关系中获取所有必需的组件,并将它们打包在一起。 - 开发者需要熟悉Maven的生命周期和命令,以便执行构建过程并解决可能出现的依赖冲突。 5. 软件开发生命周期 (SDLC): - 项目构建是软件开发生命周期中的重要部分,确保软件质量和高效部署。 - 了解如何构建和运行项目是软件开发的基础知识,对于Java项目尤为重要。 - 使用Maven这样的自动化构建工具能够简化部署过程,提高开发效率。 6. 配置管理: - 项目配置管理包括了在不同环境下对配置文件进行修改,如不同环境的数据库连接、日志配置等。 - 对于gateway.util这样的工具库,需要在不同项目中正确配置,以确保其功能的正确运行。 - 理解如何管理项目配置对于开发人员和运维人员来说都是必须具备的技能。 以上知识点涵盖了Java项目开发、Maven构建、版本控制以及软件开发生命周期的多个方面,为开发者提供了一个构建和维护Java项目的基本框架和思路。
2023-07-22 上传

package com.xiangyixiang.www.cloud.business.gateway.configure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.reactive.CorsWebFilter; import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; import org.springframework.web.util.pattern.PathPatternParser; import java.util.stream.Collectors; /**网关统一配置允许跨域 * zj 解决跨域问题 * @author 张静 */ @Configuration public class CorsConfig { @Bean public CorsWebFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedMethod("*"); config.addAllowedOrigin("http://39.105.36.172:9250"); config.addAllowedHeader("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser()); source.registerCorsConfiguration("/**", config); return new CorsWebFilter(source); } @Bean @ConditionalOnMissingBean public HttpMessageConverters messageConverters(ObjectProvider<HttpMessageConverter<?>> converters) { return new HttpMessageConverters(converters.orderedStream().collect(Collectors.toList())); } }

2023-06-10 上传

package com.bolt.gateway.handler; import com.bolt.gateway.provider.ResponseProvider; import org.springframework.boot.autoconfigure.web.ErrorProperties; import org.springframework.boot.autoconfigure.web.ResourceProperties; import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler; import org.springframework.boot.web.reactive.error.ErrorAttributes; import org.springframework.cloud.gateway.support.NotFoundException; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; import org.springframework.web.reactive.function.server.*; import org.springframework.web.server.ResponseStatusException; import java.util.Map; /** * 异常处理 * * @author arch_group */ public class ErrorExceptionHandler extends DefaultErrorWebExceptionHandler { public ErrorExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties, ErrorProperties errorProperties, ApplicationContext applicationContext) { super(errorAttributes, resourceProperties, errorProperties, applicationContext); } /** * 获取异常属性 */ @Override protected Map<String, Object> getErrorAttributes(ServerRequest request, boolean includeStackTrace) { int code = 500; Throwable error = super.getError(request); if (error instanceof NotFoundException) { code = 404; } if (error instanceof ResponseStatusException) { code = ((ResponseStatusException) error).getStatus().value(); } return ResponseProvider.response(code, this.buildMessage(request, error)); } /** * 指定响应处理方法为JSON处理的方法 * * @param errorAttributes */ @Override protected RouterFunction<ServerResponse> getRoutingFunction(ErrorAttributes errorAttributes) { return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse); } /** * 根据code获取对应的HttpStatus * * @param errorAttributes */ @Override protected HttpStatus getHttpStatus(Map<String, Object> errorAttributes) { int statusCode = (int) errorAttributes.get("code"); return HttpStatus.valueOf(statusCode); } /** * 构建异常信息 * * @param request * @param ex * @return */ private String buildMessage(ServerRequest request, Throwable ex) { StringBuilder message = new StringBuilder("Failed to handle request ["); message.append(request.methodName()); message.append(" "); message.append(request.uri()); message.append("]"); if (ex != null) { message.append(": "); message.append(ex.getMessage()); } return message.toString(); } }

2023-07-14 上传