前言

随着软件的不断发展,微服务这门技术也越来越重要,很多人都开启了学习微服务,本文就介绍了微服务的软件升级内容。


一、微服务是什么?

微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。

二、升级准备

1.升级前准备

查询最新Spring Cloud对应的支持版本: Supported Boot Version: 2.4.6
最新Spring Boot支持版本查看地址
明文地址:https://docs.spring.io/spring-cloud/docs/current/reference/html/

查询最新Spring Cloud发行版本:Release Train Version: 2020.0.3
最新Spring Clound支持版本查看地址
明文地址:https://docs.spring.io/spring-cloud/docs/current/reference/html/

在这里插入图片描述

这里是所有Springboot版本和Spring Cloud版本的对应表:
对应版本链接地址
明文地址:https://spring.io/projects/spring-cloud#overview
在这里插入图片描述

2.POM文件版本替换

原先Springboot2.0.4版本、spring-cloud版本 Finchley.RELEASE 代码如下(示例):

	<!-- spring boot 版本信息 2.0.4 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!-- java 版本信息 1.8 -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
	</properties>
	……………………省略
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

最新Springboot2.4.6版本 spring-cloud版本:2020.0.3 代码如下(示例):

	<!-- spring boot 版本信息 2.4.6 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.6</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!-- java 版本信息 1.8 -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>2020.0.3</spring-cloud.version>
	</properties>
	……………………省略
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

修改玩之后,清除maven 内容,重新 install maven包。
在这里插入图片描述
重新装包之后,可能有些插件的版本,也需要升级,在这里提供升级插件版本的查询地址:
httpclient的查询地址
明文地址:https://mvnrepository.com/search?q=httpclient
在这里插入图片描述
点击进去之后,可以获取到最新的版本信息和使用情况,例:
在这里插入图片描述

3.缓存清理问题

对于一部分用户而言,安装完最新的插件之后,有些Jar包还是会报红,例:
在这里插入图片描述
这些是因为缓存照成的,我们只需要清理一下缓存即可:
在这里插入图片描述
在这里插入图片描述
Removecaches and indexes for all projects.New caches wil be built when you reopen the projects.
译为:删除所有项目的缓存和索引。重新打开项目时将生成新缓存。
Clear file system cache and Local History
译为:清除文件系统缓存和本地历史记录
Clear downloaded shared indexes
译为:清除下载的共享索引
Ask before downloading new shared indexes
译为:下载新的共享索引前询问

三、升级后遇到的问题

1.静态文件不能访问

原有静态yml文件配置,不生效,需要重新编写配置文件来访问静态文件目录。
原有静态yml文件配置入下:
在这里插入图片描述
新增配置静态访问配置文件,在config目录下:

package com.mb.*.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 静态文件访问配置
 * @author: yanjianghua
 * @date: 2021/7/19 09:43
 */
@Configuration
public class ResourcesConfigAdapter implements WebMvcConfigurer {

    /**
     * 添加静态资源文件,外部可以直接访问地址
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
    }
}

配置后,打包重启项目即可生效。


总结

此次版本升级,遇到了一些问题,后边的文章会一一列举,本次只声明对应升级方案,并且升级后可以与原本的其他服务兼容,不影响整体业务,学习到了很多知识。如果大家有什么问题,欢迎提问。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐