未读代码

公众号:未读代码,专注 Java 。有风有雨是常态,风雨无阻是心态,风雨兼程是状态。
私信 关注
未读代码
码龄7年

【公众号:未读代码】

  • 136,230
    被访问量
  • 59
    原创文章
  • 51,976
    作者排名
  • 233
    粉丝数量
  • 于 2014-02-22 加入CSDN
获得成就
  • 获得352次点赞
  • 内容获得151次评论
  • 获得1,486次收藏
  • GitHub 获得257Stars
荣誉勋章
兴趣领域
  • #后端
    #Spring Boot#Java#Redis#分布式#Spring#Elasticsearch
TA的专栏
  • 有趣好玩
    1篇
  • Java 源码分析
    4篇
  • Java 开发技巧
    23篇
  • Java 新特性
    10篇
  • Springboot 学习与分析
    19篇
  • Java 虚拟机
    1篇
  • 中间件通信
    6篇
  • Linux
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

如何使用 Github Actions 自动抓取每日必应壁纸?

如何白嫖 Github 服务器自动抓取必应搜索的每日壁纸呢?如果你访问过[必应搜索](https://cn.bing.com/)网站,那么你一定会被搜索页面的壁纸吸引,必应搜索的壁纸每日不同,自动更换,十分精美。这篇文章会介绍如何一步步分析出必应搜索壁纸 API ,如何结合 **Github Actions**自动抓取每日必应壁纸到 Github 仓库。
原创
73阅读
1评论
2点赞
发布博客于 1 月前

Java 12 新特性介绍,快来补一补

Java 12 早在 2019 年 3 月 19 日发布,这些新特性你知道吗
原创
30阅读
2评论
0点赞
发布博客于 2 月前

三种骚操作绕过迭代器遍历时的数据修改异常

三种大开脑洞的骚操作。
原创
74阅读
4评论
0点赞
发布博客于 2 月前

SpringBoot 的多数据源配置

最近在项目开发中,需要为一个使用 MySQL 数据库的 SpringBoot 项目,新添加一个 PLSQL 数据库数据源,那么就需要进行 SpringBoot 的多数据源开发。代码很简单,下面是实现的过程。
原创
56阅读
0评论
0点赞
发布博客于 3 月前

Guava - 拯救垃圾代码,写出优雅高效,效率提升N倍

如何写出优雅高效、流畅美观、没BUG的代码
原创
1100阅读
0评论
5点赞
发布博客于 5 月前

「1024」专属序猿的快乐,惊奇迷惑代码大赏

皮一下很开心。打开专属于程序猿的快乐
原创
2247阅读
44评论
49点赞
发布博客于 5 月前

语雀mac客户端

语雀mac客户端。Yuque-0.2.24.dmg
dmg
发布资源于 5 月前

「源码分析」CopyOnWriteArrayList 中的隐藏的知识,你Get了吗?

前言本觉 CopyOnWriteArrayList 过于简单,寻思看名字就能知道内部的实现逻辑,所以没有写这篇文章的想法,最近又仔细看了下 CopyOnWriteArrayList 的源码实现,大体逻辑没有意外,不过还是发现很多有意思的地方,固留此篇文章分享之。看完这篇文章你会了解到:CopyOnWriteArrayList 的实现原理,扩容机制。CopyOnWriteArrayList 的读写分离,弱一致性。CopyOnWriteArrayList 的性能如何。CopyOnWriteArr.
原创
2447阅读
15评论
15点赞
发布博客于 5 月前

和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性

朋友,你知道Java 里一行代码读取、写入、复制文件的写法吗?
原创
172阅读
0评论
0点赞
发布博客于 6 月前

JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!

Java 性能测试难题现在的 JVM 已经越来越为智能,它可以在编译阶段、加载阶段、运行阶段对代码进行优化。比如你写了一段不怎么聪明的代码,到了 JVM 这里,它发现几处可以优化的地方,就顺手帮你优化了一把。这对程序的运行固然美妙,却让开发者不能准确了解程序的运行情况。在需要进行性能测试时,如果不知道 JVM 优化细节,可能会导致你的测试结果差之毫厘,失之千里,同样的,Java 诞生之初就有一次编译、随处运行的口号,JVM 提供了底层支持,也提供了内存管理机制,这些机制都会对我们的性能测试结果造成不可预测
原创
171阅读
0评论
0点赞
发布博客于 7 月前

[源码分析]ArrayList和LinkedList如何实现的?我看你还有机会!

文章已经收录在 Github.com/niumoo/JavaNotes ,更有 Java 程序员所需要掌握的核心知识,欢迎Star和指教。欢迎关注我的公众号,文章每周更新。前言说真的,在 Java 使用最多的集合类中,List 绝对占有一席之地的,它和 Map 一样适用于很多场景,非常方便我们的日常开发,毕竟存储一个列表的需求随处可见。尽管如此,还是有很多同学没有弄明白 List 中 ArrayList 和 LinkedList 有什么区别,这简直太遗憾了,这两者其实都是数据结构中的基础内容,这篇.
原创
70阅读
0评论
0点赞
发布博客于 8 月前

Java 开发者的编程噩梦,为什么你的代码总有 bug?

Java 开发这些坑你没踩过算我输
原创
3259阅读
4评论
13点赞
发布博客于 8 月前

撸了个多线程断点续传下载器,我从中学习到了这些知识

断点续传的原理?网速带宽固定,为什么多线程下载可以提速?
原创
194阅读
0评论
1点赞
发布博客于 8 月前

可以Postman,也可以cURL.进来领略下cURL的独门绝技

cURL 的各种神奇操作
原创
721阅读
0评论
0点赞
发布博客于 10 月前

一篇有趣的负载均衡算法实现

绝对有趣的负载平衡(Load balancing)Java讲解。
原创
337阅读
0评论
1点赞
发布博客于 10 月前

Manjaro Linux 入门使用教程

Manjaro 初体验Manjaro 是一款基于 Arch LInux 的自由开源发行版,它吸收了 Arch Linux 优秀丰富的软件管理,同时提供了稳定流畅的操作体验。优雅简单是它的追求,稳定实用是它的优势。Manjaro 和 Arch Linux 一样采用滚动发行模式,但是它的滚动更新是在 Arch Linux 更新测试一段时间之后,这也保证了系统的稳定性。话虽如此,使用中你依旧可能面...
原创
573阅读
3评论
0点赞
发布博客于 1 年前

还不懂 ConcurrentHashMap ?这份源码分析了解一下

不懂 ConcurrentHashMap ,面试心里慌不慌?
原创
941阅读
3评论
9点赞
发布博客于 1 年前

最通俗易懂的 HashMap 源码分析解读

HashMap 作为最常用的集合类之一,有必要深入浅出的了解一下。这篇文章会深入到 HashMap 源码,刨析它的存储结构以及工作机制。1. HashMap 的存储结构HashMap 的数据存储结构是一个 Node<K,V> 数组,在(Java 7 中是 Entry<K,V> 数组,但结构相同)public class HashMap<K,V> exte...
原创
278阅读
0评论
3点赞
发布博客于 1 年前

最详细的 Spring Boot 多模块开发与排坑指南

创建项目创建一个 SpringBoot 项目非常的简单,简单到这里根本不用再提。你可以在使用 IDEA 新建项目时直接选择 Spring Initlalize 创建一个 Spring Boot 项目,也可以使用 Spring 官方提供的 Spring Boot 项目生成页面得到一个项目。下面介绍一下使用 Spring 官方生成的方式,如果你已经有了一个 Spring Boot 项目,这部分...
原创
1534阅读
1评论
10点赞
发布博客于 1 年前

最通俗易懂的 Java 11 新特性讲解

大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性。Java 11 是 Java 8 之后的第一个 LTS 版本,但是也自从 Java 11 开始, Oracle JDK 不再可以免费的用于商业用途,当然如果你是个人使用,或者是使用 Open JDK ,那么还是可以免费使用的。有些人很关心 Jav...
原创
434阅读
0评论
2点赞
发布博客于 1 年前

最通俗易懂的 Java 10 新特性讲解

自从 Java 9 开始,Oracle 调整了 Java 版本的发布策略,不再是之前的 N 年一个大版本,取而代之的是 6 个月一个小版本,三年一个大版本,这样可以让 Java 的最新改变迅速上线,而小版本的维护周期缩短到下个版本发布之前,大版本的维护周期则是 3 年之久。而 10 就是这么一个小版本,因为 Java 的后续版本基本都会包含之前新特性,所以还是把 Java 10 带来的改变单独写...
原创
5808阅读
6评论
28点赞
发布博客于 1 年前
Jdk14 都要出了,Jdk9 的新特性还不了解一下?
发布Blink于 1 年前

Jdk14 都要出了,Jdk9 的新特性还不了解一下?

Java 9 中最大的亮点是 Java 平台模块化的引入,以及模块化 JDK。但是 Java 9 还有很多其他新功能,这篇文字会将重点介绍开发人员特别感兴趣的几种功能。这篇文章也是 Java 新特性系列文章中的一篇,往期文章可以查看下面链接。还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下还看不懂同事的代码?Lambda 表达式、函数接口了解一下Jdk14 都要出了,还不...
原创
883阅读
0评论
0点赞
发布博客于 1 年前

还看不懂同事代码?快来补一波 Java 7 语法特性

前言Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
原创
5510阅读
2评论
5点赞
发布博客于 1 年前

Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知

1. Spring Boot Admin 是什么Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一步...
原创
1631阅读
0评论
2点赞
发布博客于 2 年前

超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下

如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 - async-profiler。最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 async-profiler 生成 CPU/内存火焰图进行性能分析,弥补了之前内存分析的不足。在 ...
原创
1404阅读
0评论
1点赞
发布博客于 2 年前

Springboot 系列(十六)你真的了解 Swagger 文档吗?

前言目前来说,在 Java 领域使用 Springboot 构建微服务是比较流行的,在构建微服务时,我们大多数会选择暴漏一个 REST API 以供调用。又或者公司采用前后端分离的开发模式,让前端和后端的工作由完全不同的工程师进行开发完成。不管是微服务还是这种前后端分离开发,维持一份完整的及时更新的 REST API 文档,会极大的提高我们的工作效率。而传统的文档更新方式(如手动编写),很难保证...
原创
2488阅读
0评论
12点赞
发布博客于 2 年前

还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下

Java 8 新特性系列文章索引。Jdk14都要出了,还不能使用 Optional优雅的处理空指针?Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?还看不懂同事的代码?Lambda 表达式、函数接口了解一下前言我们都知道 Lambda 和 Stream 是 Java 8 的两大亮点功能,在前面的文章里已经介绍过 Lambda 相关知识,这次介绍下 Java 8 的 S...
原创
3708阅读
1评论
22点赞
发布博客于 2 年前

还看不懂同事的代码?Lambda 表达式、函数接口了解一下

当前时间:2019年 11月 11日,距离 JDK 14 发布时间(2020年3月17日)还有多少天?// 距离JDK 14 发布还有多少天?LocalDate jdk14 = LocalDate.of(2020, 3, 17);LocalDate nowDate = LocalDate.now();System.out.println("距离JDK 14 发布还有:" nowDate.u...
原创
5696阅读
8评论
26点赞
发布博客于 2 年前

设计模式 -你知道单例模式的五种实现吗?

单例模式(Singleton)单例模式是在 GOF的23种设计模式里较为简单的一种,下面引用百度百科介绍:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置...
原创
302阅读
0评论
0点赞
发布博客于 2 年前

Arthas - Java 线上问题定位处理的终极利器

前言在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用 Arthas 轻松定位,迅速解决,及时止损,准时下班。1、Arthas 介绍Arthas 是 Alib...
原创
72350阅读
43评论
103点赞
发布博客于 2 年前

Jdk14都要出了,还不能使用 Optional优雅的处理空指针?

1. 前言如果你没有处理过空指针,那么你不是一位真正的 Java 程序员。空指针确实会产生很多问题,我们经常遇到空的引用,然后又想从这个空的引用上去获取其他的值,接着理所当然的碰到了 NullPointException。这是你可能会想,这报错很好处理,然后你看了眼报错行数,对比了下代码。脑海里瞬间闪过 ”对对对,这里有可能为空“,然后加上 null check轻松处理。然而你不知道这已...
原创
1468阅读
11评论
4点赞
发布博客于 2 年前

Springboot 系列(十五)如何编写自己的 Springboot starter

1. 前言Springboot 中的自动配置确实方便,减少了我们开发上的复杂性,那么自动配置原理是什么呢?之前我也写过了一篇文章进行了分析。Springboot 系列(三)Spring Boot 自动配置。由于自动配置用到了配置文件的绑定,如果你还不知道常见的配置文件的用法,可以参考这篇文章。Springboot 系列(二)Spring Boot 配置文件。在这一次,通过学习 Spr...
原创
312阅读
0评论
0点赞
发布博客于 2 年前

互联网基础协议 - HTTP

HTTP的简介超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的...
原创
345阅读
0评论
0点赞
发布博客于 2 年前

原来热加载如此简单,手动写一个 Java 热加载吧

1. 什么是热加载热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环境。2. 热加载与热部署的区别首先,不管是热加载还是热部署,都可以在不重启服务的情况下编译/部署项目,都是基于 Java 的类加载器实现的。那么两者到底有什么区别呢?在部署方式上:热部...
原创
3191阅读
3评论
35点赞
发布博客于 2 年前

Linux配置Tomcat的单机多实例

有时候需要在一个服务器上部署多个Tomcat,通过不同的端口进行区分,比如,反向代理。但是不想简单的通过复制Tomcat来实现,这样既不方便以后的升级也不方便管理,那么这时候就需要配置Tomcat的单机多实例了。以下操作运行于Linux下。Tomcat 下载Tomcat 的下载可以直接到Tomcat官方网站下载自己需要的版本,我这里下载的Tomcat8.5.32.// 解压tar -z...
原创
340阅读
0评论
0点赞
发布博客于 2 年前

Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

当前时间:2019年10月24日。距离 JDK 14 发布时间(2020年3月17日)还有多少天?// 距离JDK 14 发布还有多少天?LocalDate jdk14 = LocalDate.of(2020, 3, 17);LocalDate nowDate = LocalDate.now();System.out.println("距离JDK 14 发布还有:"+nowDate.unt...
原创
2137阅读
0评论
0点赞
发布博客于 2 年前

抛弃Eclipse,投入IDEA 的独孤求败江湖

“工欲善其事,必先利其器”出处:孔子《论语》两年了,这是我的 IDEA 实用技巧总结,从前我是一个 Eclipse 忠实用户,直到某天我用上了 IntelliJ IDEA ,Eclipse 开始在硬盘躺尸…IDEA 是一个非常好用的工具,它的语法十分智能,当你写了一段不怎么聪明(很傻)的代码时候,它会告诉你有更优的写法;当你掌握了常用的快捷键后,开发效率提升 N 倍;当你熟练使用时候...
原创
432阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(十四)迅速启用 HTTPS 加密你的网站

1. 获取 HTTPS 证书正常情况下 HTTPS 证书需要从证书授权中心获得,这样获得的证书才具有公信力,也会被各种浏览器客户端所认可。常见的证书品牌如 Symantec,GeoTrustm,TrustAsia,Symantec 等。不过在 Springboot 的 HTTPS 实验中就没有必要去申请了,我们可以使用 Java 自带的 keytool 生成 HTTPS 证书。查看 keyt...
原创
441阅读
0评论
1点赞
发布博客于 2 年前

Springboot 系列(十三)使用邮件服务

在我们这个时代,邮件服务不管是对于工作上的交流,还是平时的各种邮件通知,都是一个十分重要的存在。Java 从很早时候就可以通过 Java mail 支持邮件服务。Spring 更是对 Java mail 进行了进一步的封装,抽象出了 JavaMailSender. 后来随着 Springboot 的出现,理所当然的出现了 spring-boot-starter-mail. 不管怎么说,每次的封装都...
原创
485阅读
0评论
1点赞
发布博客于 2 年前

Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

前言在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生成插件的开发过程,其实对于 Mybatis 来讲还有很多优秀方便好用的插件,比如这次要演示的 通用 Mapper 生成插件和分页插件。数据库准备既然是持久层框架,先准备一个用于实验操作的数据表...
原创
276阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库

1. Springboot mybatis 介绍MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取结果集的过程。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库...
原创
304阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(十)使用 Spring data jpa 访问数据库

前言Springboot data jpa 和 Spring jdbc 同属于 Spring开源组织,在 Spring jdbc 之后又开发了持久层框架,很明显 Spring data jpa 相对于 Spring jdbc 更加的便捷强大,不然也就没有开发的必要了。根据下面的文章开始体验下 Spring data jpa 魅力。1. Spring data jpa 介绍Spring d...
原创
281阅读
0评论
1点赞
发布博客于 2 年前

Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控

前言作为一名 Java 开发者,相信对 JDBC(Java Data Base Connectivity)是不会陌生的,JDBC作为 Java 基础内容,它提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。下面演示下 Springboot 中如何使用 JDBC 操作,并配置使用 Druid 连接池,体验 Druid 对数据库操作强大的监控和扩展功能。Ali...
原创
299阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(八)动态Banner与图片转字符图案的手动实现

使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号。查看官方文档可以找到关于 banner 的描述The banner that is printed on start up can be changed by adding a banner.txt file to your classpath or by settin...
原创
1003阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(七)Spring Boot web 开发之异常错误处理机制剖析

前言相信大家在刚开始体验 Springboot 的时候一定会经常碰到这个页面,也就是访问一个不存在的页面的默认返回页面。 如果是其他客户端请求,如接口测试工具,会默认返回JSON数据。```json{ "timestamp":"2019-01-06 22:26:16", "status":404, "error":"Not Found", ...
原创
1846阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件

1. 拦截器Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分。并没有本质的不同,都是通过实现 HandlerInterceptor 中几个方法实现。几个方法的作用一一如下。preHandle进入 Habdler 方法之前执行,一般用于身份认证授权等。postHandle进入 Handler 方法之后返回 modelAnd...
原创
1448阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎

前言Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器。且开发十分简单,只需要引入 web 开发所需的包,然后编写业务代码即可。自动配置原理?在进行 web 开发之前让我再来回顾一下自动配置,可以参考系列文章第三篇。Spring Boot 为 Spring MVC 提供了自动配置,添加了如下的功...
原创
308阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(四)Spring Boot 日志框架

注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。前言Spring 框架选择使用了 JCL 作为默认日志输出。而 Spring Boot 默认选择了 SLF4J 结合 LogBack。那我们在项目中该使用哪种日志框架呢?在对于不同的第三方 jar 使用了不同的日志框架的时候,我们该怎么处理呢...
原创
503阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(三)Spring Boot 自动配置原理

注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。前言关于配置文件可以配置的内容,在 Spring Boot 官方网站已经提供了完整了配置示例和解释。可以这么说,Spring Boot 的一大精髓就是自动配置,为开发省去了大量的配置时间,可以更快的融入业务逻辑的开发,那么自动配置是怎么实现...
原创
332阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(二)Spring Boot 配置文件

注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。前言不管是通过官方提供的方式获取 Spring Boot 项目,还是通过 IDEA 快速的创建 Spring Boot 项目,我们都会发现在 resource 有一个配置文件 application.properties,也有可能是appli...
原创
337阅读
0评论
0点赞
发布博客于 2 年前

Springboot 系列(一)Spring Boot 入门篇

注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。前言 由于 J2EE 的开发变得笨重,繁多的配置,错乱的依赖管理,低下的开发效率,复杂的部署流程,第三方技术的集成难度较大等。同时随着复杂项目的演进,微服务分布式架构思想逐渐进入开发者的视野。1. Spring Boot 介绍Spring...
原创
341阅读
0评论
0点赞
发布博客于 2 年前

消息队列中间件(三)Kafka 入门指南

Kafka 来源Kafka的前身是由LinkedIn开源的一款产品,2011年初开始开源,加入了 Apache 基金会,2012年从 Apache Incubator 毕业变成了 Apache 顶级开源项目。同时LinkedIn还有许多著名的开源产品。如:分布式数据同步系统Databus高性能计算引擎CubertJava异步处理框架ParSeqKafka流处理平台Kafka 介绍...
原创
545阅读
0评论
0点赞
发布博客于 3 年前

消息队列中间件(二)使用 ActiveMQ

ActiveMQ 介绍Active MQ 是由 Apache 出品的一款流行的功能强大的开源消息中间件,它速度快,支持跨语言的客户端,具有易于使用的企业集成模式和许多的高级功能,同时完全支持 JSM1.1 和 J2EE1.4 。官方下载地址: http://activemq.apache.org/download.html官方安装教程: http://activemq.apache....
原创
279阅读
0评论
0点赞
发布博客于 3 年前

消息队列中间件(一)介绍

消息队列介绍消息队列中间件是大型系统中的重要组件,已经逐渐成为企业系统内部通信的核心手段。它具有松耦合、异步消息、流量削峰、可靠投递、广播、流量控制、最终一致性等一系列功能,已经成为异步RPC的主要手段之一。目前常见的消息中间件有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。消息队列应用场景消息队列在实际中常见的应用场景有应用解耦、异步处...
原创
388阅读
0评论
0点赞
发布博客于 3 年前

Ubuntu18 的超详细常用软件安装

心血来潮,在笔记本安装了Ubuntu 18 用于日常学习,于是有了下面的安装记录。Gnome-Tweak-Toolgnome-tweak-tool可以打开隐藏的设置,可以详细的对系统进行配置,以及安装主题和扩展等功能。// 安装sudo apt install gnome-tweak-tool// 安装扩展sudo apt install gnome-shell-extensions...
原创
798阅读
0评论
0点赞
发布博客于 3 年前

IO通信模型(三)多路复用IO

多路复用IO从非阻塞同步IO的介绍中可以发现,为每一个接入创建一个线程在请求很多的情况下不那么适用了,因为这会渐渐耗尽服务器的资源,人们也都意识到了这个 问题,因此终于有人发明了IO多路复用。最大的特点就是不需要开那么多的线程和进程。多路复用IO是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则...
原创
296阅读
0评论
0点赞
发布博客于 3 年前

IO通信模型(二)同步非阻塞模式NIO(NonBlocking IO)

同步非阻塞模式(NonBlocking IO)在非阻塞模式中,发出Socket的accept()和read()操作时,如果内核中的数据还没有准备好,那么它并不会阻塞用户进程,而是立刻返回一个信息。也就是说进程发起一个read操作后,并不需要一直阻塞等待,而是马上就得到了一个结果。如果结果发现数据准备完毕就可以读取数据,然后拷贝到用户内存。如果结果发现数据没有就绪也会返回,进程继续不断的主动...
原创
300阅读
0评论
0点赞
发布博客于 3 年前

IO通信模型(一)同步阻塞模式BIO(Blocking IO)

几个概念阻塞IO 和非阻塞IO 这两个概念是程序级别的。主要描述的是程序请求操作系统IO操作后,如果IO资源没有准备好,那么程序该如何处理的问题:前者等待;后者继续执行(但是使用线程一直轮询,直到有IO资源准备好了)。同步IO 和 异步IO,这两个概念是操作系统级别的。主要描述的是操作系统在收到程序请求IO操作后,如果IO资源没有准备好,该如何响应程序的问题:前者不响应,直到IO资源准备好以...
原创
308阅读
0评论
0点赞
发布博客于 3 年前

Web笔记(二)Tomcat 使用总结

Tomcat 介绍Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一...
原创
268阅读
0评论
0点赞
发布博客于 3 年前

Web笔记(一) Web 简介与开发环境搭建

Web应用程序的工作原理大多数的Web应用程序结构都是采用最为流行的B/S软件开发体系结构,将Web应用程序部署在Web服务器上,只要Web服务器启动,用户就可以通过客户端浏览器发送HTTP请求到Web服务器,此时运行在Web服务器上对应的Web应用程序将处理客户端请求,处理完成后做出响应。Web应用程序工作原理图如下:Web应用开发技术Web应用开发技术又分为客户端开发技术,服务器开...
原创
508阅读
0评论
0点赞
发布博客于 3 年前