☰ 总览更新 10-13 10:24

17 · 串讲:用公司 plmservice 串起 16 点

10/13 我说:「能不能把这些知识点先串一下?尽量直接用我们 C8 里面的系统……直接上实操。」 源码:~/元神/舅舅线-PLM/plmservice源码/src/plmservice/(舅舅给的 plmservice.zip) 课件:D08《Spring Boot 后端工程搭建》

一句话串起来

C8 页面上点一下 → 浏览器发一个网址 → plmservice 的 Controller 接住 → 交给 Service → Service 去问 C8 → 结果装进 ResEntity 送回去。

浏览器  /plmservice/style/query?styleNo=HS001
   ↓
StyleController.query()        ← 04 方法:跳进去
   ↓ styleService.queryByStyleNo()   ← 12 接口:只认合同
StyleServiceImpl               ← 10/12 extends + implements
   ↓ fakeC8.get("HS001")       ← 13 HashMap:按钥匙取
PlmStyleEntity(双肩包)          ← 05/06/07 类、构造、private
   ↓
WebResponse.success(style)     ← 08 static:不 new 直接用
   ↓
ResEntity {code=0, data=HS001 双肩包}  ← 10 toString

实操:迷你版 plmservice(真跑过)

~/元神/舅舅线-PLM/java复习/plm迷你版/,7 个文件,类名都跟公司一样: | 文件 | 公司里对应的 | |---|---| | Main.java | 假装浏览器(公司里是 Spring 启动) | | StyleController.java | core/controller/TestController.java | | StyleService.java | mybatis/service/StyleService.java | | StyleServiceImpl.java | mybatis/service/impl/StyleServiceImpl.java(HashMap 假装 C8) | | PlmStyleEntity.java | mybatis/entity/PlmStyleEntity.java | | WebResponse.java / ResEntity.java | commons/dto/ 下同名 |

cd ~/元神/舅舅线-PLM/java复习/plm迷你版 && javac *.java && java Main
{code=0, msg=成功!, data=HS001 双肩包, success=true}
{code=201, msg=没有这个款号:HS999, data=null, success=false}

16 点 × 公司真代码

点 在 plmservice 哪里 看到什么
01 编译运行 readme.md、D08 JDK8 + Maven 编译;启动后端口 8088
02 基本/引用类型 PlmStyleEntity private Integer id; private String styleNo;
03 == 和 equals 全项目 123 处 .equals( 比字符串用 equals
04 方法 C8NodeService queryFirstByNodeName → 调 queryFirstByXML → 调 queryByXML,一层层跳进去再跳回来
05 类和对象 PlmStyleEntity 一个款 = 一个对象
06 构造方法 ResEntity @AllArgsConstructor = 让工具帮你写「全参数构造」
07 封装 PlmStyleEntity 字段全 private;@Getter @Setter = 工具帮你写 get/set
08 static WebResponse public static ResEntity success(...),用时 WebResponse.success(...) 不 new
09 main core/CoreApplication.java 启动类:Spring 从这里的 main 启动整个项目
10 继承/toString StyleServiceImpl extends ServiceImpl<…>;@ToString = 工具帮你写 toString
11 多态 Controller 里 变量写 StyleService(合同),实际是 StyleServiceImpl
12 接口 StyleService / PlmStyleMapper public interface StyleService;class StyleServiceImpl … implements StyleService
13 ArrayList/HashMap C8NodeService.queryFirstByXML List<String>,isEmpty() 就返回 "",否则 get(0) 拿第一个
14 Set/TreeSet enhancement/.../dep/DepPath.java private TreeSet<String> paths —— C8 查询路径,去重+排序
15 泛型 到处 List<PlmStyleEntity>、ServiceImpl<PlmStyleMapper, PlmStyleEntity>
16 遍历修改 全项目 171 处 for ( 读代码时留意:循环里有没有 remove

看到 @ 开头的别慌

@Getter @ToString @Autowired @RequestMapping 都叫注解=贴给工具看的便签: - @Getter/@Setter/@ToString/@AllArgsConstructor(Lombok):工具帮你把 get/set/toString/构造方法写出来 - @Autowired:Spring 帮你 new,并塞进这个变量 - @RequestMapping("/test"):Spring 收到 /test 开头的网址,就交给这个类

🔴 为什么不直接跑公司的 plmservice

config/.../application-plm.yml 里写着真实 C8 地址和账号,启动会自动登录 C8。先找舅舅要测试环境,再跑。