码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一个注解干翻所有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
  • 相关阅读:
    加湿器芯片方案:不要让空调带走你的水分
    免费的维吾尔语翻译器:维汉翻译通App,最近新增了什么功能呢?让我们一起来看看!好用的维语翻译工具支持语音评分功能、支持汉语查拼音等等。
    Vue(一)——Vue核心
    “Boxing-StraightFist“ app Tech Support(URL)
    三.Postman接口实践
    深度学习概念——端对端
    vivo官网App模块化开发方案-ModularDevTool
    mysql学习笔记2:如何避免数据库乱码
    【JVM笔记】创建类和数组实例的字节码指令
    MySQL 快速入门之 MySQL 5.7.18 zip 文件安装
  • 原文地址:https://blog.csdn.net/m0_74931226/article/details/127883421
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号