将 Spring Boot 工程迁移至 SOFABoot 工程

SOFABoot 是基于 Spring Boot 框架构建的,所以可以轻松地从 Spring Boot 迁移至 SOFABoot。在阅读本文中的 注意事项 后,您可以遵循 迁移步骤 将现有的 Spring Boot 工程改为使用 SOFABoot 框架的工程。

注意事项

  • SOFABoot 框架基于 Spring Boot 2.1.0.RELEASE 版本构建,您在迁移过程中可能会发生 Spring Boot 版本的变更。如果在升级过程中出现不兼容,可联系技术团队为您服务。

  • Tracer(分布式链路跟踪)已集成在各个中间件的 starter 中,无需额外添加依赖以及配置。

迁移步骤

您可以通过以下步骤完成工程迁移。

  1. 在工程的 application.properties 配置文件中,添加基础配置。其中,您需要指定以下两个系统配置项:

    • spring.application.name:必填。此为应用名称,保持 Spring Boot 的扩展和一致性。

    • logging.path:必填。配置日志的输出路径。

      说明

      关于这两个配置项的详细说明,参见 系统配置参数

  2. 在工程的 application.properties 配置文件中,修改中间件配置项。具体配置方法见 引入 SOFA 中间件> 添加中间件全局配置项

  3. 打开工程根目录下的 pom.xml 文件,在 parent 部分配置以下版本依赖:

    <parent>
         <groupId>com.alipay.sofa</groupId>
         <artifactId>sofaboot-enterprise-dependencies</artifactId>
         <version>3.1.1</version>
    </parent>
  4. pom.xml 中引入对应中间件的 starter(查看 引入 SOFA 中间件> 所有中间件 starter)。以添加 SOFAREST 为例,只需在 pom.xml 中配置以下依赖:

    <dependency>
         <groupId>com.alipay.sofa</groupId>
         <artifactId>rest-enterprise-sofa-boot-starter</artifactId>
         <version>3.0.0</version>
    </dependency>
  5. 声明 rest facade 接口。示例如下:

    @Path("/webapi/test")
    @Consumes("application/json;charset=UTF-8")
    @Produces("application/json;charset=UTF-8")
    public interface TestFacade{
    
        @GET
        public String test();
    
    }
  6. 声明 facade 的实现类。示例如下:

    public class TestServiceImpl implements TestFacade{
         @Override
         public String test(){
             return "test";
         }
    }
  7. 将该实现类声明为 bean。示例如下:

    <bean id="testServiceImpl" class="com.alipay.test.endpoint.impl.TestServiceImpl"/>
  8. 启动应用。

    • 在浏览器中访问 http://localhost:8341/webapi/test,可以看到 rest 接口返回的数据。

    • ${logging.path}/logs/tracelog/rest-server-digest.log 文件中,可以查看该次访问的链路信息(Tracer)日志。

      说明

      {logging.path} 为您在配置文件中设置的日志输出路径。

其他 SOFA 中间件集成方式可以参考对应中间件 starter 的集成文档。