7.30实习笔记

1、代码复用

在一些系统中,例如add是业务层接口方法,语义上表示“新增”。add强调新增动作,而save可能隐含“创建或更新”的双重语义(如Upsert操作)。通过分层命名,对外暴露清晰的业务意图:

    public Drf add(Drf drf) {
        return save(drf); // 其中,save是另外一个方法
    }

实际功能委托给save方法执行,自身仅作为调用入口。

目的

代码复用:若系统中存在统一保存逻辑(如事务控制、日志记录),save可被多个方法(如add、update)复用,避免重复代码。

扩展灵活性:未来若新增逻辑(如校验、通知),只需修改save,无需改动add的调用方。


2、Idea调用方法排查,以及其在前后端项目中的局限

在idea中,如果要查谁调用了这个方法,或者这个方法调用了谁,可以用以下方式:

快捷键 Ctrl + Alt + H(Windows/Linux)

操作:光标定位到方法名 → 按下快捷键 → 弹出 Call Hierarchy 窗口。

效果:

  • 分层展示调用链:Callers(谁调用了该方法)和 Callees(该方法调用了谁)。
  • 支持展开层级,点击节点跳转到源码。

除此以外,以下快捷键可以快速定位方法被哪些类直接引用

快捷键 Alt + F7

操作:选中方法名 → 按 Alt + F7→ 弹出 Find Usages 面板。

效果:

  • 列出所有直接调用该方法的位置(类、文件、行号),双击快速跳转。
  • 支持按模块、范围过滤。
局限性

在费控系统中,可以找到一些没有被任何类调用的控制层方法。他们其实是系统的 HTTP 入口,属于action包的控制层方法:

前端Vue --HTTP--> Action层(如本方法) --调用--> Service层

调用规则:控制层方法不会被其他Java代码调用,而是

  1. 被SpringMVC的路由机制映射。
  2. 直接接收HTTP请求。
  3. 向下调用Service层(如IBillSubtypeService)。

所以,用快捷键是查不到的。


3、SpringMVC中的接口

细化定义:通过@RequestMapping(或@GetMapping/@PostMapping)注解将HTTP请求映射到Java方法,形成一个可访问的URL端点,提供远程调用入口,允许前端通过HTTP请求触发后端业务逻辑。

  1. 前端请求:通过URL(例如 /api/subtypes?my_name=123)触发。

  2. 参数解析:Spring自动将查询参数注入方法参数(my_id, my_name, my_keywords)。

  3. 业务处理:调用Service层查询数据库,返回业务功能结果。

  4. 响应封装:将数据包装为RestVO<泛型>格式(含状态码code、消息msg、数据data)。


4、后端接收数据并返回的全过程

  1. Action中介接收前端雇主的特制弹药(参数)

  2. Action将弹药装进Drf弹夹,得到装好的弹夹(实体对象,业务查询的参数载体)

  3. Action收回弹夹,将其交给Service猎人

  4. Service用弹夹里的弹药装填SQL枪支(拼接查询)

  5. 向Database(数据库)森林开枪射击

  6. 捡回猎物(原始数据)封装进Page背包

  7. 把Page背包交给Action中介

  8. Action将背包塞进RestVO快递箱

  9. 快递员Spring MVC将箱子送往雇主(前端),前端接收RestVO,展示给用户


5、通过开发者模式寻找Api接口的前端按钮

使用Network面板的Initiator追踪(最直接方法)

  1. 捕获目标请求
    打开开发者工具(F12)→ 切换到 Network 标签 → 刷新页面或执行操作触发接口调用。
    在请求列表中找到目标API接口,点击该请求记录。

  2. 查看发起源(Initiator)
    在请求详情面板中,切换到 Initiator 标签页:
    调用栈(Call Stack):显示从按钮点击到发起请求的完整代码链路。

  3. 关键定位点:
    查找栈中带有 .click、addEventListener 或 onClick 等事件关键词的条目。
    点击栈中的文件名(如 app.js:102),自动跳转到 Sources 面板的对应代码位置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容