温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
今天我们不再写hello world, 而是把spring官方clinic作为后续22招持续演进的代码模本。先回答一个问题,Spring boot到底替他搭好了哪些基础设施?先读PA clinic application pet visit repository、配置和测试。在实际执行查询主人,新增宠物登记就诊,把一条完整链路跑通。如果只是跑通页面,怎么证明是spring boot省了事,我们得从浏览器请求追到controller业务层、repository和数据库,看每一层是谁在创建和装配。分别用idea spring boot RAM和utable jar三种方式启动,三种入口都指向同一个应用说明启动方式只是外壳核心装配逻辑完全一致。X炸最值得关注。他把web容器依赖和自解码打包成一个可执行文件,部署时不再需要单独安装tomcat,也不用手工配置classpath。
01:09
那数据访问呢?Pet clinic repository只是接口,没有实现类。Spring boot怎么知道该生成GPA查询还是走缓存或JDBC?它根据克class斯里的依赖和配置做条件装配。看到spring data GPA和数据库驱动,就自动创建nt manager事务管理器和帕斯代理。还有配置读取application properties里的数据库、连接、端口、日志级别都被外部化,并绑定到对应对象,避免把环境信息写死在代码里。测试呢?Pet clinic的切片测试只加在部分上下文,没有完整启动所有组件。这是spring boot提供的,还是测试框架自己做的?
02:00
Spring boot提供测试、自动配置和上下文缓存。它按注解选择加在web层或数据层,避免每次测试都启动完整应用,从而显著缩短反馈时间。最终,我们要建立自己的spring尼克斯B仓库。后续每一招都在同一个仓库上继续演进,不再反复初始化项目。所以spring boot t PA clinic完成的是启动入口web容器依赖装配数据访问代理配置、绑定和测试上下文。先跑通这条基线,后面22招才有稳定起点。
我来说两句