Skip to content

idealzouhu/java-demos

Repository files navigation

描述

😀项目说明

本项目总结 Java 技术栈的应用案例,旨在帮助开发者快速理解核心概念与实践。

🐌学习示例

(1) java-demos

本部分总结 Java 常用的案例,涵盖数据类型、异常处理、集合、线程等核心概念。

  • java-datatype : 分析 Java 的基本数据类型,并研究比较常用的 Java 类( 例如 StringBuffer 、StringBuilder )。
  • java-annotation:自定义注解,并且通过反射在运行时获取注解信息。
  • java-exception :研究自定义异常的使用方法,并给出自定义异常的案例。
  • java-collections :提供 Java 线程安全和线程不安全的集合使用案例。
  • java-lock :分析 Java 内置锁和 Java 显示锁如何解决自增线程不安全。
  • java-thread :探索线程状态查询、常用方式和线程池的使用,重点分析 ThreadLocal 和 CompletableFuture 的应用。
  • java-io :总结 Java I/O 的使用案例。
  • java-sorting-algorithm :利用 Java 实现排序算法,例如堆排序、归并排序。

(2) spring-boot-demos

本部分包含使用 Spring Boot 框架创建的各种示例项目,涵盖 AOP、RESTful 服务、文件操作等。

(3) spring-cloud-demos

本部分展示了使用 Spring Cloud 构建微服务架构的示例项目,包括服务注册、发现和流量控制等功能。

(4) middleware-demos

本部分包含对常用中间件的示例项目,包括 Redis、MyBatis 和 RocketMQ 的使用。

  • spirng-boot-redis :利用 RedisTemplate 操作 Redis里面的数据,展示基本的 CRUD 操作。

  • spring-boot-mybatis :使用 mybatis 依赖来查询数据库,深入研究 MyBatis 框架的应用。

  • spring-boot-rocketmq : 使用 rocketmq-client-java 依赖,生产和消费不同类型的消息。

  • spring-boot-rocketmq-starter : 研究 rocketmq-spring-boot-starter 的使用方法,简化消息处理。

  • spring-boot-minio: 展示 MinIO 中间件的使用案例,并使用 Spring AOP 进行配置。

  • spring-boot-canal :给出 Canal 的使用案例。

  • spring-boot-canal-redis :使用 Canal 和 RocketMQ 实现 MySQL 增量数据的异步缓存更新。

  • spring-boot-shardingsphere :使用 shardingsphere 实现分库分表,其主要核心功能是将 Logic SQL 转换为 Actual SQL。

  • spring-boot-elasticsearch :整理 elasticsearch 的语法,并给出 elasticsearch-client 和 elasticsearch-starter 的使用案例。

  • java-json :利用 Jackson 和 Fastjson 2.0 来处理 JSON 数据,从而替换有缺陷的 Java 自身序列化。

(5) design-pattern-demos

本部分分析常见的设计模式,帮助理解如何在项目中应用这些模式以提高代码质量和可维护性。

  • singeleton-pattern :分析懒汉式单例模式和饿汉式单例模式的使用及其优缺点。

  • builder-pattern :研究建造者模式及 @Builder 注解的使用,简化复杂对象的创建。

  • proxy-pattern :利用 Java 反射实现代理模式。

  • strategy-pattern :实现策略模式,并利用 IoC 容器自动添加策略类。

🥀结语

感谢您访问本项目!希望这些示例能够为您的学习与开发提供帮助。如果您觉得这些内容对您有价值,欢迎给项目点赞⭐️,您的支持是我不断更新和完善的动力!

About

Java 全技术栈的使用案例

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published