这门课解决什么问题

对于Java后端开发者来说,Spring是绕不开的核心框架,但很多初学者容易陷入“只会写代码,不会用框架”的困境。本课程直指职场真实开发痛点:如何将原本散乱的代码结构,通过依赖倒置原则(DIP)和开闭原则(OCP)进行解耦?如何从零开始理解控制反转(IoC)和依赖注入(DI)这些抽象概念,并落地到实际项目中?课程从环境准备、Jar包下载到第一个程序编写,一步步带你跨越从Java SE到Spring框架的鸿沟,解决因概念模糊导致的开发效率低下问题。

适合什么基础,资料怎么配合练习

这门课不要求你已经是资深架构师,但建议你具备扎实的Java基础(如集合、多线程、IO流等),并且对面向对象编程有基本认知。资料包中的视频并非流水账,前几章的导读和环境准备是“地基”,建议先完整看完,不要跳过。资料里包含的日志框架配置(如Log4j)和Jar包说明,是实际开发中必须掌握的细节。配合资料中的源码,建议每学完一个章节,就在本地复现一遍,特别是“Spring的第一个入门程序”及其后续的细节讲解,必须亲手敲出来并观察日志输出,才能真正理解框架的运作机制。

学完能独立做什么

当你跟随老杜学完这套课程,你将不再需要依赖IDE的自动生成来创建Bean,而是能独立搭建基于Spring6的开发环境。你将掌握Spring 8大模块的划分,能够熟练使用XML或注解方式进行依赖注入,并能独立排查程序中的日志问题。学完之后,你可以独立开发简单的Spring应用,理解企业级开发中“面向接口编程”的精髓,为后续深入学习Spring Boot、MyBatis等主流技术栈打下坚实的底层逻辑基础。资料中的所有练习案例,都能直接作为你简历中的项目经验素材。

课程目录

1 Spring课程导读 (04:16)
2 环境准备 (05:37)
3 分析程序存在的问题 (08:50)
4 软件开发原则之OCP开闭原则 (07:01)
5 软件开发原则之DIP依赖倒置原则 (07:21)
6 控制反转IoC思想的理解 (09:20)
7 依赖注入DI (06:12)
8 Spring的8大模块 (11:39)
9 Spring框架的特点 (07:49)
10 Spring的下载 (08:25)
11 Spring的jar包 (05:33)
12 Spring的第一个入门程序 (25:43)
13 对Spring的第一个程序小细节1 (10:07)
14 对Spring的第一个程序小细节2 (14:19)
15 Spring6启用Log4j日志框架 (08:08)
16 控制反转和依赖注入的关系 (04:54)
17 依赖注入之set注入 (22:27)
18 依赖注入之构造注入 (11:50)
19 set注入专题之内部Bean和外部Bean (07:36)
20 set注入专题之注入简单类型 (04:53)
21 set注入专题之什么是简单类型 (03:49)
22 set注入专题之测试简单类型 (07:55)
23 set注入专题之简单类型Date (05:09)
24 set注入专题之简单类型注入的经典应用 (07:32)
25 set注入专题之级联属性赋值 (10:24)
26 set注入专题之注入数组 (06:41)
27 set注入专题之List和Set集合注入 (04:40)
28 set注入专题之Map和Properties注入 (06:09)
29 set注入专题之注入null和空字符串 (07:04)
30 set注入专题之注入特殊字符怎么办 (04:34)
31 基于p命名空间的注入 (06:01)
32 基于c命名空间的注入 (06:16)
33 util命名空间让配置复用 (09:43)
34 基于XML的自动装配byName (09:52)
35 基于XML的自动装配byType (08:37)
36 引入外部的属性配置文件 (07:17)
37 bean作用域之单例和多例 (10:05)
38 bean作用域之scope其它选项 (06:16)
39 bean作用域之自定义scope (08:09)
40 GoF23种设计模式概述 (10:19)
41 简单工厂模式详解 (15:18)
42 GoF23种设计模式之工厂方法模式 (13:52)
43 Bean的实例化之第一种方式 (06:33)
44 Bean的实例化之第二种方式 (07:43)
45 Bean的实例化之第三种方式 (08:33)
46 Bean的实例化之第四种方式 (11:44)
47 BeanFactory和FactoryBean的区别 (02:56)
48 FactoryBean实战之注入Date (12:31)
49 Bean的生命周期之五步 (12:26)
50 Bean的生命周期之七步 (07:38)
51 Bean的生命周期之十步 (16:20)
52 Bean的生命周期之不同作用域有不同的管理方式 (03:43)
53 自己new的对象纳入Spring容器管理 (03:23)
54 Bean的循环依赖之单例和set模式下 (09:12)
55 Bean的循环依赖之解决循环依赖的本质 (04:13)
56 Bean的循环依赖之多例和set模式下 (08:04)
57 Bean的循环依赖之构造注入模式下 (06:47)
58 Bean的循环依赖之源码分析 (17:41)
59 回顾反射机制之调用方法四要素 (06:06)
60 回顾反射机制之反射调用方法 (11:26)
61 回顾反射机制之SpringDI核心实现 (12:50)
62 手写Spring框架之准备工作 (09:24)
63 手写Spring框架之核心接口实现 (08:22)
64 手写Spring框架之实例化Bean (16:26)
65 手写Spring框架之获取所有set方法 (09:15)
66 手写Spring框架之给非简单类型属性赋值 (08:19)
67 手写Spring框架之给简单类型属性赋值 (11:36)
68 手写Spring框架之测试自己的框架 (13:13)
69 Spring IoC注解之回顾注解小细节 (13:43)
70 Spring IoC注解之反射注解 (06:14)
71 Spring IoC注解之组件扫描原理 (14:41)
72 Spring IoC注解之声明Bean的注解 (06:09)
73 Spring IoC注解之Spring注解的使用 (13:26)
74 Spring IoC注解之解决多个包扫描问题 (03:09)
75 Spring IoC注解之选择性实例化Bean (11:19)
76 Spring IoC注解之@Value注解 (14:49)
77 Spring IoC注解之@Autowired和@Quali (15:51)
78 Spring IoC注解之@Autowired注解可以出现的 (04:15)
79 Spring IoC注解之@Resource注解 (17:28)
80 Spring IoC注解之全注解开发 (04:07)
81 JdbcTemplate之环境准备 (14:02)
82 JdbcTemplate之新增 (02:28)
83 JdbcTemplate之修改和删除 (02:16)
84 JdbcTemplate之查一个对象 (02:10)
85 JdbcTemplate之查多个对象 (01:34)
86 JdbcTemplate之查一个值 (02:53)
87 JdbcTemplate之批量添加 (03:54)
88 JdbcTemplate之批量更新 (02:43)
89 JdbcTemplate之批量删除 (01:47)
90 JdbcTemplate之回调函数 (04:38)
91 JdbcTemplate之整合德鲁伊连接池 (04:47)
92 GoF代理模式之对代理模式的深入理解 (20:44)
93 GoF代理模式之静态代理前序 (15:47)
94 GoF代理模式之静态代理代码实现 (19:02)
95 GoF代理模式之动态代理概述 (06:22)
96 GoF代理模式之JDK动态代理的两个参数 (13:16)
97 GoF代理模式之JDK动态代理的调用处理器 (06:00)
98 GoF代理模式之JDK动态代理invoke方法 (08:21)
99 GoF代理模式之invoke方法的三个参数 (06:40)
100 GoF代理模式之invoke方法的返回值 (05:16)
101 GoF代理模式之JDK动态代理工具类封装 (04:29)
102 GoF代理模式之CGLIB动态代理 (15:48)
103 面向切面编程之对面向切面编程的深入理解 (18:20)
104 面向切面编程之七大术语 (14:10)
105 面向切面编程之切点表达式 (07:51)
106 Spring AOP实现之概述 (05:13)
107 Spring AOP基于注解之准备工作 (05:05)
108 Spring AOP基于注解之实现步骤 (15:04)
109 Spring AOP基于注解之切点表达式 (03:59)
110 Spring AOP基于注解之所有通知类型 (10:05)
111 Spring AOP基于注解之切面顺序 (03:29)
112 Spring AOP基于注解之通用切点 (03:07)
113 Spring AOP基于注解之连接点 (03:46)
114 Spring AOP基于注解之全注解开发 (02:58)
115 Spring AOP基于XML方式的实现 (09:18)
116 Spring AOP编程式事务解决方案 (14:13)
117 Spring AOP安全日志解决方案 (09:18)
118 Spring事务之事务概述 (08:24)
119 Spring事务之引入事务场景 (14:43)
120 Spring事务之演示转账失败 (08:30)
121 Spring事务之事务管理器接口 (05:19)
122 Spring事务之注解方式 (05:30)
123 Spring事务之传播行为 (10:38)
124 Spring事务之搭建传播行为测试程序 (16:34)
125 Spring事务之传播行为REQUIRED (03:50)
126 Spring事务之传播行为REQUIRES_NEW (04:59)
127 Spring事务之事务隔离级别的三大读问题 (10:55)
128 Spring事务之事务隔离级别 (03:24)
129 Spring事务之测试事务隔离级别 (11:41)
130 Spring事务之事务超时避免踩坑 (07:02)
131 Spring事务之只读事务启动优化策略 (03:29)
132 Spring事务之设置遇到哪些异常时回滚 (04:18)
133 Spring事务之设置遇到哪些异常不回滚 (02:22)
134 Spring事务之全注解式开发 (11:42)
135 Spring事务之声明式事务XML实现方式 (20:08)
136 Spring框架对JUnit4的支持 (06:52)
137 Spring框架对JUnit5的支持 (03:09)
138 Spring框架集成MyBatis的实现步骤 (07:35)
139 Spring框架集成MyBatis数据库表和引入依赖 (07:22)
140 Spring框架集成MyBatis准备包和pojo (01:31)
141 Spring框架集成MyBatis实现Mapper接口和配置 (06:15)
142 Spring框架集成MyBatis编写service接口和实 (05:09)
143 Spring框架集成MyBatis编写mybatis核心配置 (02:26)
144 Spring框架集成MyBatis编写Spring配置文件 (05:43)
145 Spring框架集成MyBatis测试程序 (02:58)
146 在Spring主配置文件中引入子配置文件 (02:35)
147 Spring框架的八大设计模式 (04:16)
148 Spring框架的八大设计模式 (09:56)