• 一个注解干翻所有Controller


    1. 概览

    日常开发中,最繁琐的便是编写 Controller。很多公司都制定了规范:Controller 不能存在任何的业务逻辑,主要完成参数解析和结果转换。不过查看项目源码,你会发现 Controller 中存在了大量不该存在的逻辑,对此,你有什么好的方法?依赖 Code Review?从我角度,我觉得 Controller 根本就不需要存在。

    1.1. 背景

    之前对 CommandService 和 QueryService 进行封装,通过定义接口的方式快速搭建应用服务,大大提升了开发效率和代码质量,在有了应用服务之后,便是在其基础之上编写 Controller,把能力暴露出去。这是一个非常繁琐且没有技术含量的重复工作。而对于枯燥的重复工作,我的策略一直都是“交由框架完成”。

    1.2. 目标

    简单的说,我们的目标便是不写Controller,但还要保留 Controller 的效果。

    1. 不需要编写 Controller 代码,将 CommandService 和 QueryService 直接暴露为 Web 接口;
    2. 完成与 Swagger 框架的集成,动态生成 api doc,方便前端接入;

    2. 快速入门

    2.1. 环境准备

    首先,在 pom 中增加 lego-starter,具体如下:

    1. <dependency>
    2.     <groupId>com.geekhalo.lego</groupId>
    3.     <artifactId>lego-starter</artifactId>
    4.     <version>0.1.11-rest-SNAPSHOT</version>
    5. </dependency>

    其次,增加 swagger 相关依赖,具体如下:

    1. <dependency>
    2.     <groupId>io.springfox</groupId>
    3.     <artifactId>springfox-boot-starter</artifactId>
    4.     <version>3.0.0</version>
    5. </dependency>
    6. <dependency>
    7.     <groupId>io.springfox</groupId>
    8.     <artifactId>springfox-data-rest</artifactId>
    9.     <version>3.0.0</version>
    10. </dependency>

    最后,新建 SpringFoxConfiguration,启用 Swagger 具体如下:

    1. @Configuration
    2. @EnableSwa
  • 相关阅读:
    基于 SpringBoot+Vue 的企业人事管理系统
    ubuntu 根目录空间扩容
    一文2000字手把手教你自动化测试平台建设分享
    VMware中安装Ubuntu(2023年)
    Hadoop3:MapReduce中的Reduce Join和Map Join
    同花顺_代码解析_技术指标_A
    Win7下安装VS2017心路历程
    【设计模式】单例模式
    基于内存的分布式NoSQL数据库Redis(一)介绍与安装
    将Nacos注册到springboot使用以及Feign实现服务调用
  • 原文地址:https://blog.csdn.net/m0_74931226/article/details/127883421