自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青山师

专注Java+AI工程化落地,Java架构师转型AI技术负责人。 硬核实战,篇篇干货。 关注我,一起把AI做成产品。

  • 博客(449)
  • 资源 (29)
  • 收藏
  • 关注

原创 【GitHub 开源:一份系统化的 Java 架构师技术 CookBook,从数据结构到分布式系统的完整学习路线图】

本文介绍了一个持续维护的Java技术知识仓库项目,采用"CookBook"理念系统化整理技术内容,涵盖数据结构与算法、Java核心、Spring生态、分布式系统等全栈知识。项目包含60+篇技术文档和可运行示例代码,亮点包括:28篇数据结构与算法详解(基础+工程实践)、12周渐进式学习路线、面试高频考点整理、可运行代码示例。适合各阶段开发者学习使用,支持作为学习路线图、面试复习资料或技术速查手册。项目开源并欢迎贡献,旨在帮助Java开发者高效成长。

2026-05-02 14:21:27 667

原创 CompletableFuture深度解析:异步编程范式与源码实现

CompletableFuture深度解析 本文系统剖析Java 8引入的CompletableFuture异步编程框架。首先从理论层面分析同步阻塞模型的性能瓶颈,阐述异步编程的必要性,并对比传统Future的局限性。随后梳理Java异步编程演进历程,从早期回调地狱到ExecutorService+Future,再到CompletableFuture的诞生。重点解析其核心设计:通过CompletionStage接口实现计算图的声明式编排,采用Treiber Stack实现无锁依赖管理,结合函数式编程范

2026-05-10 15:28:32 268

原创 Java内存模型深度解析:Happens-Before规则与内存屏障实现原理

Java内存模型(JMM)是定义多线程环境下共享变量访问规则的并发理论基础,核心是建立happens-before关系。现代CPU的多级缓存架构(如L1/L2/L3)和MESI协议虽然保证缓存一致性,但Store Buffer和Invalidate Queue会导致可见性延迟。编译器优化通过指令重排序提升性能,但可能破坏多线程语义。JMM作为程序员与硬件/编译器间的契约,通过内存屏障等技术确保正确的内存可见性。理解JMM需要掌握底层硬件原理(如缓存一致性)、编译器行为(指令重排序)以及happens

2026-05-10 15:08:46 363

原创 AQS深度解析:并发编程基石的设计哲学与源码实现

AQS(AbstractQueuedSynchronizer)是Java并发编程的核心框架,采用模板方法模式封装同步器的通用逻辑(队列管理、线程阻塞/唤醒),子类通过实现tryAcquire等方法定制同步行为。其核心设计包括CLH变体队列、volatile状态变量及CAS原子操作,支撑了ReentrantLock、Semaphore等JUC组件。AQS通过分离框架层与实现层,提供高效灵活的同步机制,是深入理解Java并发的关键。

2026-05-10 11:07:20 304

原创 【AI热点资讯】5月10日AI热点:Cloudflare裁员1100人、Musk庭审第二周回顾、OpenAI发布Codex Chrome插件

5月9-10日,海外AI圈出现多起重大事件:Cloudflare裁减1,100名员工,与此同时AI使用量暴增600%——这是AI替代人工的又一个上市公司级别案例;Musk诉Altman案第二周遭The Verge回顾总结,Mira Murati证词披露Altman解雇细节、Helen Toner/Tasha McCauley视频作证;OpenAI发布Codex Chrome扩展,让AI直接"操控"浏览器中已登录的网站和应用。

2026-05-10 11:04:48 331

原创 线程池深度解析:从生产者-消费者模型到工业级调优实践

本文深入解析Java线程池的核心原理与工业级实践。从线程池的本质认知出发,剖析其作为生产者-消费者模型和资源复用机制的双重角色。重点解读ThreadPoolExecutor源码设计,包括ctl字段的位运算艺术、任务调度流程和状态转换机制。通过JVM内存模型分析线程池数据结构分布,对比不同队列策略的性能差异。提供线程池参数计算公式和监控方案,总结常见陷阱与最佳实践。最后附上面试题解析,帮助开发者掌握线程池调优技巧,构建高并发系统。

2026-05-09 23:07:24 361

原创 动态代理深度解析:JDK与CGLIB底层实现与实战

动态代理(Dynamic Proxy)不是简单的"设计模式应用",而是**Java运行时字节码工程**的核心技术。它是Spring AOP、MyBatis Mapper接口、Dubbo RPC、Hibernate延迟加载等主流框架的**底层基础设施**。

2026-05-08 20:19:59 361

原创 Java反射深度解析:运行时探查的艺术、代价与工程实践

Java反射机制是Java动态性的核心体现,它允许程序在运行时探查和操作类结构。本文从理论基础、实现原理到工程实践全面剖析反射机制。 核心要点: 反射本质是绕过编译期检查,实现运行时动态调用 通过java.lang.reflect包提供的Class、Method等类实现 性能开销主要来自类型检查、访问控制等额外操作 与MethodHandle相比,反射更灵活但性能较低 现代Java框架广泛使用反射实现动态代理和依赖注入 应用场景: 框架开发(Spring、Hibernate等)

2026-05-07 22:49:08 399

原创 Java注解深度解析:从元数据机制到框架开发基石

Java注解机制,涵盖JVM层面的元数据存储、编译期与运行期协作原理。注解在class文件中通过属性表存储,运行时以动态代理对象形式存在。文章详解注解的生命周期(SOURCE/CLASS/RUNTIME)及对应消费方(编译器/字节码工具/JVM),分析@Inherited的继承规则限制,并通过Spring等框架案例展示注解如何支撑声明式编程。最后探讨注解与XML配置的演进关系,揭示注解作为现代Java框架基石的技术本质。

2026-05-06 21:33:59 190

原创 Java枚举深度解析:从类型安全到JVM级单例模式

Java枚举(Enum)是类型安全与单例模式的完美结合,远非简单的常量集合。其核心价值体现在:1) 编译期类型检查,杜绝非法值;2) JVM级单例保证,反射和序列化无法破坏;3) 策略模式载体,通过抽象方法实现多态行为。从JVM角度看,枚举编译为final类,包含静态常量字段和私有构造器,类加载时初始化实例,确保线程安全。字节码分析显示,枚举通过values()克隆数组、valueOf()委托Enum实现,而静态代码块负责初始化常量。最佳实践建议将业务逻辑封装在枚举内部,而非外部switch-cas

2026-05-06 21:30:55 411

原创 【AI热点】5月6日AI热点:政府安全评估新机制、OpenAI模型升级与价格战开启

5月6日,AI圈迎来三大关键动态:美国政府与五大AI公司建立模型提前评估机制、OpenAI发布GPT-5.5 Instant提升ChatGPT体验、DeepSeek V4和Kimi K2.6以8倍价格优势冲击闭源模型市场。核心主线:AI安全治理从自愿合作向制度化迈进,同时性能溢价空间被开源模型快速侵蚀。

2026-05-06 21:03:37 379

原创 DeepSeek V4 出来了,我一个 Java 老炮第一时间接进 Spring Boot——附 V3 vs V4 实测对比

DeepSeek V4 在 Java 开发场景中表现优于 V3,尤其在代码生成、长上下文处理及 Java 生态适配方面。V4 支持 1M token 上下文窗口(V3 仅 128K),减少幻觉,提升代码质量。V4-Flash 与 V3 同价但性能更强,V4-Pro 提供接近 GPT-4o 的能力但价格更低。通过 Spring AI 可快速集成 V4 到 Spring Boot,API 兼容 OpenAI 格式,接入成本低。实测显示,V4 生成的代码更完善,如自动添加校验、封装响应体、优化 SQL 查询等。

2026-05-06 00:51:04 367

原创 【大模型提示词工程深度解析:从原理到工业级实践、实践案例】

提示词工程:从理论到实践的AI控制艺术 提示词工程是一门通过精心设计输入文本来引导AI模型输出的技术,其核心在于利用语言模型的概率分布特性。文章系统梳理了提示词工程的发展历程,从早期的模板填充到现代的动态多模态交互,揭示了不同阶段的技术特点: 理论基础:深入解析Transformer架构的注意力机制和上下文学习原理,阐明提示词如何影响模型的输出分布 发展脉络: 前提示词时代(2018-2020):基于BERT的模式匹配 GPT-3革命(2020-2022):涌现上下文学习能力 指令微调时代(2021-202

2026-05-05 11:07:05 428

原创 Docker部署whisper转写模型

本文详细介绍了如何部署whisper-asr-webservice项目,该服务将Whisper语音识别模型封装为HTTP API。提供三种部署方式:1)直接使用预构建Docker镜像;2)通过Docker Compose编排部署;3)从源码自定义构建。部署完成后可通过POST /asr等端点进行语音识别,支持环境变量配置模型大小、默认语言等参数。文章包含具体命令示例、API调用方法和高级配置建议,特别提醒中文识别推荐使用medium或large模型,首次运行需下载模型文件。最后给出了生产环境部署建议和扩展方

2025-08-09 18:57:14 1454

原创 Docker镜像地址

本文提供了多个可用的Docker镜像加速地址(registry-mirrors),包括中国科技大学、网易、DaoCloud等国内镜像源,以及部分国际镜像站点。这些镜像地址可用于加速Docker镜像的下载和更新,用户可根据网络环境选择合适的镜像源配置。完整的JSON格式列表可直接复制使用,适用于Docker配置文件的修改。

2025-08-09 18:08:59 448

原创 冒泡排序、选择排序、计数排序、插入排序、快速排序、堆排序、归并排序JAVA实现

冒泡排序、选择排序、计数排序、插入排序、快速排序、堆排序、归并排序JAVA实现。

2024-11-04 15:37:16 2035

原创 Mqtt协议快速入门Demo

消息队列遥测传输协议MQTT.和HTTP协议不一样,MQTT采用的是二进制数据包。 由3各部分组成:固定头 可变头 消息体。一个入门的java示例demo

2024-10-28 13:46:31 635

原创 ubuntu开机问题解决:/dev/sda3 : clean , ***files , ***blocks

ubuntu开机问题解决:/dev/sda3 : clean , ***files , ***blocks。解决办法:如果是虚拟机可以删除重新弄一个大一点的。还可以进行扩容处理。使用 df -h 或者 fdisk -l 命令可以查看当前磁盘空间。在VMWARE对应虚拟机中磁盘空间选择扩展,空间分配大一点。然后连续按两下回车键Enter即可。

2024-10-21 10:06:12 5208 1

原创 Docker极速入门一文通

Docker自定义文件默认名为 Dockerfile, 也可以使用命令指定目标文件。关键字(大写)描述示例FROM一般是第一条指令。用于指定使用的基础镜像。指定镜像的维护者信息。zs@qq.comRUN镜像构建过程中需要执行的指令。比如在构建过程中需要安装net-tools包:WORKDIR指定镜像的工作目录,默认交互式进入容器时会进入到该命令指定的目录。COPY拷贝文件到镜像中。可以使用容器绝对路径,也可以使用相对于WORKDIR的相对路径ADD拷贝文件到镜像中。

2024-10-10 15:41:47 1840

原创 简易入门:使用Docke 部署一个tomcat服务

启动docker容器后,此时浏览器访问8080端口,访问tomcat显示404,其实服务已经部署好了。只是官方镜像一般是精简版的,所以webapps目录下没有内容。

2024-10-09 17:36:36 577

原创 ubuntu 开放 8080 端口快捷命令

【代码】ubuntu 开放 8080 端口快捷命令。

2024-10-09 12:30:33 1626

原创 腾讯云上传pushdocker镜像到镜像仓库

本文以 DockerHub 官方的 Nginx 最新镜像为例,在命令行工具中依次执行以下指令,即可推送该镜像。请将 project-a 及 nginx 依次替换为您实际创建的命名空间名称及镜像仓库名。本文以已成功推送的 Nginx 镜像为例,在命令行中执行以下命令,即可拉取该镜像。您可在本地构建新的容器镜像或从 DockerHub 上获取一个公开镜像用于测试。

2024-10-08 11:38:43 877

原创 微服务服务间调用组件Feign使用介绍、原理、优化技巧

Feign是一个声明式的Web Service客户端。它让微服务之间的调用变得更简单。Feign具有可插拔式的注解支持,包括Feign 注解和JAX-RS注解。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注解的支持,并且也支持Spring WebFlux。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。Feign的基本概念、原理与使用。Feign采用声明式的接口,自动拼接URL、添加参数等工作,简化HTTP客户端的开发。

2023-05-20 15:51:28 1960 1

原创 微服务负载均衡器Ribbon介绍、使用以及原理和源码理解

Ribbon是Netflix开源的客户端负载均衡器,它可以很好的控制HTTP和TCP客户端的行为。Ribbon支持配置客户端添加重试和超时等功能,旨在使客户端更加强健。负载均衡故障检测暂时性错误重试客户端配置化等轮询(RoundRobinRule):轮流选择服务器随机(RandomRule):随机选择服务器重试(RetryRule):在一个配置时间内当选择服务器不成功,则一直尝试该服务器,超过配置时间才尝试其他服务器。

2023-05-17 23:23:16 2032

原创 微服务注册中心Eureka原理到源码

Eureka是Netflix开源的一款用于提供服务注册和发现的产品,它提供了完整的服务注册和发现功能,具有容错性,可伸缩性等特性。Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server提供服务注册服务。各个微服务启动时,会通过Eureka Client向Eureka Server注册自己的信息(例如服务名称、IP地址、端口等)。

2023-05-15 18:31:03 1389

原创 JVM问题排查和垃圾回收机制

JVM的主要内存区有方法区、堆、栈、程序计数器等,堆和方法区是所有线程共享的,其中堆主要用于存储对象实例,是一个显著的可回收内存来源。垃圾回收器的主要工作就是规律的遍历堆区,释放那些不再被使用的对象所占用的内存,使其成为可用内存。其中,[标记-清除]算法会产生内存碎片较严重,而[标记-复制]算法需要双倍的内存空间,所以目前主流的商业虚拟机一般采用[标记-整理]算法。Java垃圾回收主要是利用垃圾回收器对堆内存进行回收,回收那些不再被使用的对象所占用的内存,以实现内存的再利用。

2023-05-12 19:44:15 1302

原创 线程池的介绍、原理、监控运维、框架使用场景案例

JDK 提供的线程池功能较基础,开源框架 Executors 在此基础上做了许多封装,更加易用。主要有:- newCachedThreadPool:创建一个可缓存的线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。- newFixedThreadPool: 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。- newScheduledThreadPool: 创建一个定长线程池,支持定时及周期性任务执行。- newSingleThreadExecuto

2023-05-03 20:19:47 1552

原创 synchronized的偏向、轻量、重量级锁

Synchronized实现同步的方式有三种:偏向锁、轻量级锁、重量级锁。本文会从理论和代码实践两方面阐述三种锁的实现细节和原理。

2023-05-02 22:47:16 1333 1

原创 JAVA并发万字长文从ReentrantLock到juc框架

ReentrantLock 是通过一个volatile 的变量和一个 FIFO 的队列来实现的。该 volatile 变量表示当前获得锁的线程,FIFO 队列用来存储等待锁的线程。具体实现方式是:当一个线程获取锁时,将当前线程设置为 volatile 变量的值。如果其他线程试图获取该锁,则会加入 FIFO 队列的尾部,并标记为等待状态。当持有锁的线程释放锁时,它会唤醒 FIFO 队列头部的线程,这个线程继续执行并获取锁。ReentrantLock 是可重入锁,意味着同一个线程可以多次获取这把锁。这是

2023-05-02 20:53:28 1325

原创 volatile关键字原理的使用介绍和底层原理解析和使用实例

volatile 关键字的主要作用是保证可见性和有序性,禁止编译器优化。保证可见性:当一个变量被声明为 volatile 之后,每次读取这个变量的值都会从主内存中读取,而不是从缓存中读取,这就保证了不同线程对这个变量操作的可见性。有序性:volatile 关键字保证了不同线程对一个 volatile 变量的读写操作的有序性。禁止编译器优化:编译器会对代码进行各种优化来提高性能,但是这些优化也可能让同步代码失效。volatile 关键字告诉编译器不要对这段代码做优化,从而避免一些不正确的优化。

2023-05-02 17:11:46 1777

原创 ThreadLocal的使用介绍和底层原理解析和开源框架的使用实例

ThreadLocal是一个线程内部的数据存储类,它可以为每个线程提供独立的变量副本,不同线程间的变量无法相互访问和修改。这避免了每个线程都要维护一套独立变量的麻烦,并且也减少了线程之间不必要的数据争用。ThreadLocal适用于这样的场景:每个线程需要有自己单独的实例,而不是共享实例。例如,在 web 应用中,每个请求被一个新的线程处理,每个线程需要有自己的变量实例。

2023-05-02 15:07:43 2251

原创 ConcurrentHashMap的使用介绍和底层原理解析和开源框架的使用实例

ConcurrentHashMap是JDK1.5提供的线程安全的HashMap,它允许多个线程并发访问哈希表,并发修改map中的数据而不会产生死锁。ConcurrentHashMap适用于高并发的环境下,可以替代synchronized实现的同步HashMap。ConcurrentHashMap的并发度很高,吞吐量也很高。ConcurrentHashMap通过锁分段技术,实现高度的并发访问,大大提高了HashMap的吞吐量,是高并发环境下一个很好的选择。

2023-05-01 23:01:50 1758

原创 【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异

JDK1.8引入了红黑树,降低了链表过长的可能性,提高了效率。JDK1.8使用synchronized+CAS控制并发扩容,避免锁定整个table,提高了并发度。JDK1.8对null key做了优化,null键值对存储在table[0]位置。三个版本的HashMap都采用链表散列结构,通过key的hashCode映射到table,如果hash冲突就采用链表存储。扩容的阈值loadFactor在三个版本都是0.75,阈值size和table大小的乘积超过loadFactor时触发扩容。

2023-04-30 13:51:09 1526

原创 CopyOnWriteArrayList 的底层原理与多线程注意事项

CopyOnWriteArrayList 是 Java 集合框架中非常实用的线程安全 List 集合,通过读写分离的思想,保证了在高并发读多写少的情况下的数据安全和性能。但是,由于每次写操作需要复制整个数组,所以对内存的消耗较大,同时在迭代过程中也可能会存在一些数据不一致的问题。因此,在使用 CopyOnWriteArrayList 时,需要根据实际业务需求选择合适的集合类型,避免出现不必要的问题。

2023-04-30 11:46:23 2941 2

原创 Java集合框架与ArrayList、LinkedList的区别

在集合框架中,ArrayList和LinkedList是两个最基本的数据结构。LinkedList是一个双向链表,表示一个有序的集合,可以包含重复的元素。ArrayList是一个动态数组,表示一个有序的集合,可以包含重复的元素。Java集合框架是Java平台的一部分,它包含了一组接口、实现类和算法,可以用于存储和处理数据。下面给出一个使用 ArrayList 和 LinkedList 的示例代码,包括元素的插入、删除和访问操作。Java集合框架提供了丰富的算法和数据结构,可以满足各种不同的需求。

2023-04-30 11:29:21 2140

原创 Java中的String、StringBuffer和StringBuilder

String、StringBuffer 和 StringBuilder 都是处理字符串的类型,但是它们之间有很大的不同。String 是不可变的,而 StringBuffer 和 StringBuilder 是可变的。StringBuffer 和 StringBuilder 类似,但是 StringBuffer 是线程安全的,而 StringBuilder 不是。如果你需要对字符串进行频繁的修改操作,并且在多线程环境中使用,那么就应该使用 StringBuffer;

2023-04-30 11:16:45 1360

原创 消息队列如何保证消息可靠性传输

在本文中,我们主要介绍了持久化存储、消息确认机制、重试机制和幂等性处理等机制,以及使用 JAVA 语言和 Apache Kafka、RabbitMQ 进行代码实践的示例。通过上述机制的支持和实践,可以保证消息队列系统的可靠性和稳定性,为各大互联网公司提供高效、稳定的消息传输服务。

2023-04-30 11:07:56 3593

原创 RocketMQ 底层实现原理

在 RocketMQ 中,消息的发送过程可以分为三个步骤:1. 生产者发送消息到 Broker;2. Broker 将消息存储到磁盘,并将消息持久化到 CommitLog 和 IndexFile 中;3. 消费者从 Broker 拉取消息并进行消费。

2023-04-30 10:59:16 2874

原创 kafka的push、pull分别有什么优缺点

在 Kafka 中,生产者使用 push 模式将消息推送给 Kafka 集群,而消费者则使用 pull 模式从 Kafka 集群中拉取消息。本文对 Kafka 的 push 和 pull 两种模式进行比较,分析其优缺点。Pull 模式是 Kafka 新增的方式,使用该模式时,消费者可以自主选择从哪个分区开始拉取消息,并可以自主控制拉取消息的速度。Kafka 中为消费者维护着一个 offset,表示消费者已经消费的消息序号,当消费者拉取消息时,Kafka 会返回该消费者还没有消费的消息。

2023-04-29 15:58:33 3744 1

原创 InnoDB如何实现事务、undo log、redo log、binlog

当一个事务开始后,会在内存中为其分配一块undo log,并在该事务执行修改数据表之前将相关数据先拷贝到undo log中。同时,InnoDB还利用了多版本并发控制(MVCC)来实现数据的隔离性。主从复制时,从库会读取主库的binlog事件来重放数据的更改,实现数据一致性。redo log是指数据库系统执行修改操作时所记录的日志,它的主要作用是确保当数据库崩溃时不会丢失数据更新操作。InnoDB是MySQL的默认存储引擎,它使用多版本并发控制(MVCC)和锁机制来实现事务。

2023-04-26 15:31:43 967

oracle常用语句

笔者使用oracle开发常用的语句,推荐给初学者。

2013-12-11

mysql读写锁演示案例

主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。

2019-10-23

SpringBoot官方文档手册

SpringBoot官方文档手册.pdf

2016-12-15

Redis最精简的入门完全读本(30页)

Redis读本,一趟公交车的时间即可概览整个Redis的使用详情。

2017-05-10

支付宝账户体系架构支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍

支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍 支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍 支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍 支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍 支付宝账户体系、支付宝整体架构、资金流和信息流(业务流)的详细介绍

2018-06-11

java8帮助文档中文版API

JDK8的帮助文档,就像jdk1.6的文档那样顺手。chm文件,建议在windows PC下观看,因机器翻译,会和英文版API有部分差异或词汇的使用差异,若有必要请阅读原版英文API

2018-05-15

maven构建多模块项目源码实例

使用maven构建多模块项目。在一个项目中使用多个模块的一个方法是将模块添加为依赖项,正常情况下,我们会添加一个外部模块作为依赖。但是,当模块是一个项目的一部分,并密切相关的时候,该项目应被构造为一个多模块项目。在一个多模块项目中,Maven可以确保所有子模块在主模块之前被构建。

2016-11-21

springMVC4-rest-jackson-jsonview-annotation.zip

分享一个使用SpringMVC4 Rest 和Jackson的@JsonView注解集成的实例。@JsonView用来过滤JSON响应。Spring4.1开始直接支持@JsonView注解。要使用@JsonView,首先我们需要定义视图,我们可以定义多个视图。一个视图定义可以继承其他视图定义。我们的POJO使用@JsonView注解属性传递已经定义的视图。在Spring的Controller我们可以使用Jackson的@JsonView注解我们的方法。序列化Http响应体的时候,JSON响应将在配置视图的基础上进行过滤。我们也可以在Spring REST Client使用@JsonView注解。Spring提供了MappingJacksonValue 包装POJO和序列化视图设置,在发送到web服务器短的时候,我们可以使用RestTemplate来过滤JSON。现在一步一步呈现完整的示例。

2016-11-19

Hessian远程调用框架学习一

Hessian远程调用框架学习一,第一个JAVA使用hessian的入门demo,简单实用易理解

2016-12-13

Zookeeper数据节点可视化查看工具

Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。 Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。 Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。

2018-11-29

Extjs中文API(脚本娃娃 (Ext4.1.0 Doc中文版 V1.0.0 Beta))

脚本娃娃 (Ext4.1.0 Doc中文版 V1.0.0 Beta),感谢20多位翻译人员的努力。 网上关于Extjs的文档大多是英文版的,快速阅读不太方便,此文档index.html用浏览器打开后是中文版,帮助新手使用。

2014-07-12

JAVA面试八股文.pptx

· **MyBatis** · **分布式** · **IO** · **Redis** · **MySQL** · **MQ** · **基础** · **JVM** · **类加载** · **WEB** · **Spring** · **SpringBoot** · **网络**

2021-09-22

个推Demo-APP

个推Demo -- 安装到安卓手机,可以参看博客教程http://blog.csdn.net/zixiao217/article/details/51916929

2016-07-15

Java并发大神Doug Lee同步队列论文

Java并发大神Doug Lee同步队列论文

2017-08-09

JDBC学习笔记教程文档

很详细的JDBC教程文档,祝各位有所收获!

2013-12-11

开发API帮助文档集结(.chm)

这是笔者开发中常用到的chm格式api帮助文档,包括JDK,C++,CSS,JS等11个帮助文档,积分虽然有点高,但是绝对值得。分享给大家,希望能帮到大家,省却找各种API的麻烦了。

2013-12-11

W3SCHOOL离线api.chm

本文档时程序员最喜爱的chm格式,包含html/css、javascript、xml等技术,并且每个知识点都配有小巧的实例解析,让你几分钟就能学会。

2014-07-08

真实个人JavaScript学习笔记

笔者根据自己使用经验整理出来的web后台开发工程师必须掌握的JavaScript技巧。

2014-08-09

数据库函数、存储过程详解

该文件包含两个doc文档,分别讲解Sybase的数据库函数和存储过程。

2014-11-01

Thymeleaf+Java Demo演示

Thymeleaf模板和Java集成开发的Demo演示

2016-11-16

[JAVA解惑](美)布洛赫.PDF

[JAVA解惑](美)布洛赫.PDF

2017-06-19

dubbo相关的配置文件出现红叉解决

eclipse中dubbo的配置文件报错了。出现小红叉的烦人问题。

2017-07-27

TortoiseGit 64bit.msi

TortoiseGit 64bit msi git bash

2017-10-11

计算机大学课程数据结构PPT

大学计算机教程数据结构清华大学严蔚敏版课程PPT 计算机重点课程

2018-06-27

自动生成mybatis映射文件工具

自动生成mybatis映射文件工具; 步骤: 1》打开generatorConfig.xml文件,配置自己的数据库连接参数 2》配置实体类、mapper映射文件、mapper接口 3》:回到根目录,按住Shif+鼠标右键(即在当前目录打开命令行),执行生成语句.txt文件中的内容

2018-09-14

XPathTutorial.rar

解析XML的示例。Xpath解析XML。里面有大量的案例,使用者下载后打开index页面接口浏览对应的语言版本教程(比如中文版)。

2020-07-30

spring-batch教程.pdf

官方提供的spring batch批处理教程.pdf Spring Batch 编辑 Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使的已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务。 Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch 同样提供了高级功能和特性来支持,比如分区功能、远程功能。总之,通过 Spring Batch 能够支持简单的、复杂的和大数据量的批处理作业。 Spring Batch 是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如 Quartz、Tivoli、Control-M、Cron 等)可以使用。

2017-09-21

Git 64 bit

git 64位下载; bashgit 64位下载; bashgit 64位下载; bashgit 64位下载; bashgit 64位下载; bashgit 64位下载; bash

2017-10-11

常用正则表达式

还在为开发过程各种正则表达式怎么设计而烦恼吗?! 笔者根据多年的经验,总结了各种验证正则表达式献给大家,如邮箱验证,身份证格式验证得得。 很实用的常用正则表达式,推荐给大家!

2013-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除