第三周总结
Java 学习第三周总结
一、学习概述
本周学习内容涵盖微服务架构进阶技术与 Java 基础强化两大部分。在微服务领域,深入探索了 Spring Cloud Task 的任务调度机制、Spring Cloud Function 的事件驱动编程,以及 Eureka 服务发现的高可用性配置与 Spring Cloud Gateway 的安全增强功能。同时,系统回顾了 Java 基础语法、面向对象核心概念、异常处理及集合框架等内容,夯实编程基础。通过理论与实践结合,进一步提升了微服务架构设计能力与 Java 编程素养。
二、微服务架构进阶技术
(一)Spring Cloud Task 与任务调度
- 学习目标
- 理解 Spring Cloud Task 的轻量级任务调度机制
- 掌握一次性任务的配置与执行流程
- 应用于数据迁移、批量处理等场景
- 核心内容
Spring Cloud Task 是基于 Spring Boot 的任务调度框架,支持任务的执行、监控与管理。通过添加spring-cloud-starter-task依赖,配置Task Bean 并实现CommandLineRunner接口,即可定义任务逻辑。实际应用中,通过 Spring Cloud Data Flow 平台启动任务服务,可通过 UI 或命令行提交任务,适用于日志归档、数据同步等一次性操作场景。 - 实践案例
- 创建任务服务模块,定义数据迁移任务类
- 配置任务执行参数与监控规则
- 通过 Data Flow 平台触发任务并查看执行结果
- 学习心得
Task 框架简化了微服务中的任务调度开发,尤其适用于非周期性的批量操作。结合 Data Flow 平台,可实现任务的可视化管理,提升运维效率。
(二)Spring Cloud Function 与事件驱动 - 学习目标
- 掌握事件驱动架构在微服务中的实现
- 理解函数式编程在事件处理中的应用
- 集成消息中间件实现事件流转
- 核心内容
Spring Cloud Function 支持构建事件驱动微服务,通过spring-cloud-starter-function-web依赖,可定义函数式接口处理事件。例如,使用Function<String, String>定义字符串转换函数,结合 RabbitMQ 或 Kafka 作为事件源,通过配置spring.cloud.stream.bindings关联消息通道,实现事件的接收与处理。 - 实践案例
- 构建事件处理服务,定义消息转换函数
- 配置 RabbitMQ 作为事件源,绑定输入 / 输出通道
- 发送消息验证函数式处理逻辑
- 学习心得
事件驱动架构解耦了服务间的直接调用,通过函数式编程简化了事件处理逻辑。Spring Cloud Function 与 Spring Cloud Stream 的结合,提供了灵活的事件驱动解决方案。
(三)Eureka 高可用性配置 - 学习目标
- 掌握 Eureka 服务发现的高级配置
- 实现 Eureka 服务器集群化部署
- 优化服务注册与发现的性能与可靠性
- 核心内容
Eureka 服务器通过配置eureka.server.enable-self-preservation=false关闭自我保护模式,设置eviction-interval-timer-in-ms=5000缩短失效实例剔除周期。客户端配置prefer-ip-address=true确保使用 IP 地址注册,并通过instance-id自定义实例标识。高可用性实现需部署多个 Eureka 实例,相互注册形成集群,客户端配置多个defaultZone地址。 - 实践案例
- 启动三个 Eureka 实例,配置相互注册
- 微服务客户端注册到 Eureka 集群
- 模拟单节点故障,验证服务发现的高可用性
- 学习心得
Eureka 集群化部署显著提升了服务发现的可靠性,通过合理配置参数可优化服务注册与剔除效率,适应高并发微服务场景。
(四)Spring Cloud Gateway 安全增强 - 学习目标
- 深化 Gateway 的安全防护配置
- 集成 Spring Security 实现认证授权
- 结合 OAuth2 保护后端服务
- 核心内容
在 Gateway 中添加spring-boot-starter-security依赖,通过SecurityConfig配置类禁用 CSRF,设置/user/**等路径需认证访问,其他路径放行并启用 OAuth2 登录。同时配置资源服务器,确保只有认证通过的请求可访问后端服务,结合 JWT 令牌实现分布式认证。 - 实践案例
- 配置 Gateway 安全规则,保护用户服务接口
- 集成 OAuth2 认证服务器,生成访问令牌
- 测试未授权请求访问受保护接口的拦截效果
- 学习心得
Gateway 与 Spring Security 的深度集成,为微服务架构提供了统一的安全网关层,通过细粒度的路径访问控制,有效保护后端服务安全。
三、Java 基础强化
(一)语法与流程控制 - 核心内容回顾
- 数据类型:基本类型(int/double/char/boolean)与引用类型(String / 数组 / 对象)的定义与使用
- 类型转换:自动转换(小类型→大类型)与强制转换(需注意精度丢失)
- 运算符:三目运算符(condition ? expr1 : expr2)及==与equals()的区别
- 流程控制:switch 穿透性处理、for-each 循环遍历集合,break/continue 的使用场景
- 易错点警示
- 避免在 for 循环后错误添加分号导致空循环体
- 引用类型使用==比较时实际比较内存地址,需用equals()比较内容
(二)面向对象核心 - 类与对象
- 封装:通过 private 字段与 public getter/setter 实现数据封装
- 构造方法:初始化对象状态,支持重载
- 示例代码:
public class Student {
private String name;
public Student(String name) { this.name = name; }
public String getName() { return name; }
}
2. 继承与多态
34. 继承语法:class Child extends Parent
35. 方法重写:使用@Override注解覆盖父类方法
36. 多态应用:父类引用指向子类对象,调用时动态绑定子类方法
(三)接口与抽象类
- 接口(Interface)
- 定义抽象方法与默认方法(Java 8+),支持静态方法
- 实现类需覆盖所有抽象方法
- 示例:
interface Flyable {
void fly();
default void land() { System.out.println("着陆中"); }
}
2. 抽象类(Abstract Class)
40. 包含抽象方法与具体方法
41. 子类必须实现所有抽象方法
42. 区别:接口强调 "能做什么",抽象类强调 "是什么类型"
(四)异常处理
- 分类与处理
- 受检异常(如 IOException)必须捕获或声明抛出
- 非受检异常(RuntimeException 子类)无需强制处理
- 处理结构:try-catch-finally,finally 块始终执行
- 自定义异常
class MyException extends Exception {
public MyException(String message) { super(message); }
}
(五)集合框架
- 核心接口
- List:有序可重复(ArrayList/LinkedList)
- Set:无序唯一(HashSet/TreeSet)
- Map:键值对(HashMap/TreeMap)
- 操作示例
List
list.add("Java");
list.forEach(System.out::println); // Lambda遍历
Map<Integer, String> map = new HashMap<>();
map.put(1, "Apple");
String value = map.get(1); // 获取值
3. 注意事项
49. 未指定泛型时集合类型不安全,可能引发 ClassCastException
50. ArrayList 非线程安全,多线程场景需使用 Collections.synchronizedList ()
四、本周学习总结与反思
(一)学习成果
- 掌握 Spring Cloud Task 与 Function,实现任务调度与事件驱动架构
- 完成 Eureka 高可用集群配置,提升服务发现可靠性
- 深化 Spring Cloud Gateway 安全配置,实现统一认证授权
- 系统回顾 Java 基础,强化面向对象、异常处理与集合框架应用能力
(二)存在问题 - 事件驱动架构中消息通道与函数式接口的复杂关联理解不够深入
- Eureka 自我保护模式的底层机制与适用场景仍需进一步研究
- Java 基础中泛型编程与反射机制的应用不够熟练
(三)改进方向 - 深入学习 Spring Cloud Stream 与消息中间件的集成细节
- 研读 Eureka 源码,理解服务注册与剔除的核心算法
- 通过泛型项目实践强化 Java 高级特性的应用能力
(四)下周计划 - 学习 Spring Cloud Alibaba 组件(Nacos/Sentinel)
- 探索分布式事务解决方案(Seata)
- 开展微服务综合项目实战,整合三周所学技术
- 深入研究 Java 并发编程与 JUC 工具包应用
浙公网安备 33010602011771号