- 博客(108)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注

原创 Spring Cloud集成ELK完成日志收集实战(elasticsearch、logstash、kibana)
简介对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELK,所以说ELK指的是Elasticsearch、Logstash、Kibana技术栈的结合。ELK对外作为一个日志管理系统的开源方案,能够可靠和安全地从任何格式的任何来源获取数据,...
2020-02-14 14:58:56
4264

原创 Swagger与SpringMvc集成生成Restful形式接口文档
swagger提供的接口文档相比传统的文档方式更加直观也更加高效,但是在网上找了很多关于Swagger与SpringMvc整合的资料,发现都比较繁琐,不是很满意,于是有了这篇博客,希望对大家有所帮助。
2017-06-29 18:20:42
20322
原创 告别天价算力!本地部署DeepSeek大模型保姆级教程(基于Ollama 和 ChatBox)
在人工智能蓬勃发展的时代,本地化部署语言模型成为众多开发者和技术爱好者探索的前沿领域。DeepSeek R1 作为一款功能强大的语言模型,凭借其卓越的推理和生成能力,在自然语言处理等领域展现出独特优势。借助 Ollama 和 ChatBox 进行本地部署,我们能够在自己的设备上轻松驾驭这一强大工具,深入探索其无限潜力。接下来,我将为大家详细介绍在 Windows 系统上完成这一部署过程的每一个关键步骤,并附上关键环节的截图,助力大家顺利完成部署。
2025-02-20 11:44:44
792
原创 达梦数据库同步部署方案
达梦数据复制(DATA REPLICATION)是一个分担系统访问压力、加快异地访问响应速度、提高数据可靠性的解决方案。将一个服务器实例上的数据变更复制到另外的服务器实例。可以用于解决大、中型应用中出现的因来自不同地域、不同部门、不同类型的数据访问请求导致数据库服务器超负荷运行、网络阻塞、远程用户的数据响应迟缓的问题。
2022-01-19 10:27:05
2341
原创 centos7防火墙常规操作-防火墙开启、关闭、查询防火墙状态、开放端口、查询开放端口等
Linux开启、关闭防火墙、查看防火墙状态、重启防火墙,开放指定端口等常规操作
2022-01-19 10:23:27
875
原创 Spring系列(五)Spring的多线程
1. 多线程Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThredPoolTaskExecutor可以实现基于线程池的TaskExecutor。为了实现异步任务,可以在配置类中通过 @Enable开启对异步任务的支持,并通过实际执行的Bean的方法使用 @Async 注解来声明是一个异步任务2. 代码示例配置类/** * 配置类 * @E...
2020-03-20 10:24:37
925
原创 Spring系列(四)Spring Aware
1. 什么是Spring AwareSpring的依赖注入的最大的亮点就是所有的Bean对容器的存在是没有意识的,即你可以将你的容器换成别的容器,这时Bean直接的耦合度最低。需要用到Spring容器本身的功能资源的时候,Bean必须意识到Spring容器的存在,才能调用Spring所提供的资源,这就是Spring Aware。若使用了Spring Aware,Bean将会和Spring框架耦...
2020-03-20 10:20:08
227
原创 使用Comparator实现集合排序
对任意类型集合对象进行整体排序,排序时将此接口的实现传递给Collections.sort方法或者Arrays.sort方法排序.实现int compare(T o1, T o2);方法,返回正数,零,负数各代表大于,等于,小于。用于排序的示例代码如下:实体类:Studentpackage com.zjx;public class Student { private Stri...
2020-02-07 22:07:56
1202
原创 Spring系列(三)Spring AOP详解
文章目录1 什么是面向切面编程1.1 定义AOP术语1.2 Spring对AOP的支持2 通过切点来选择连接点2.1 编写切点2.2 在切点中选择bean3 使用注解创建切面3.1 定义切面3.2 创建环绕通知3.3 处理通知中的参数3.4 通过注解引入新功能4. 在XML中声明切面4.1 声明前置通知和后置通知4.2 声明环绕通知4.3 为通知传递参数4.4 通过切面引入新的功能5. 注入Asp...
2020-02-06 20:29:00
907
原创 JAVA NIO(四)NIO非阻塞式网络通信
1. 阻塞与非阻塞传统的IO流都是阻塞式的。也就是说,当一个线程调用read()或write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。Java NIO 是非阻塞模式的。当线程从某通道进行读写数据...
2020-02-06 12:21:22
628
原创 JAVA NIO(三)通道(Channel)
1. 通道(Channel)通道(Channel):由java.nio.Channels包定义的。Channel表示IO源与目标打开的连接。Channel类似于传统中的“流”,只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互。Channel在java NIO中负责缓冲区的数据传输。Channel本身不存在数据,因此需要配合缓冲区进行传输。Java 为 C...
2020-02-05 22:39:28
986
原创 JAVA NIO(一)基本概念
Java NIO(New IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Sun官方标榜的特性如下:为所有的原始类型提供(Buffer)缓存支持字符集编码解码方案Channel:一个新的原始I/O抽象支持锁和内存映射文件的文件访问接口提供多...
2020-02-05 21:12:55
248
1
原创 IO系列之对象序列化
1. 对象序列化介绍对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得了这种二进制流,都可以将这种二进制流恢复成原来的Java对象。 简单来讲,对象序列化就是将内存中的对象数据转换为二进制流进行传输的操作。对象序...
2020-02-05 11:41:13
277
原创 IO系列之缓冲流详解
缓冲流是一个包装类,起到缓冲作用。缓冲流分为-字符缓冲(BufferedReader和BufferedWriter)和字节缓冲流(BufferedInputStream和BufferedOutputStream)
2020-02-04 14:49:27
835
原创 图的广度优先搜索(java和Python实现)
广度优先搜索:bredth-first search BFS图由节点和边组成。一个节点可能与众多节点相连,这些结点被称为邻居。可以使用广度优先搜索查找最短路径队列是一种先进先出(First in First Out,FIFO)的数据结构。队列只支持两种操作:入队和出队栈是一种后进先出(Last In First Out,LIFO)的数据结构广度优先搜索运行时间为O(点数+边数),这通常写...
2020-02-04 10:22:11
287
原创 java实现文件夹的拷贝(复制文件夹)
复制文件夹其实就是通过递归复制文件的过程,具体实现如下: /** * 复制文件夹(使用缓冲字节流) * @param sourcePath 源文件夹路径 * @param targetPath 目标文件夹路径 */ public static void copyFolder(String sourcePath,String targetPath) ...
2020-02-03 20:44:08
5144
原创 使用Java和Python实现快速排序算法
快速排序采用了分而治之的策略(divide and conquer,D&C),一种著名的递归式问题解决方法。分而治之的工作原理:找出简单的基线条件确定如何缩小问题的规模,使其符合基线条件使用递归实现数组元素求和:java版本 public static int sum(int[] array){ if(array.length <= 1){ ...
2020-02-02 21:59:57
1210
原创 IO系列之内存流
内存流:在内存中读写数据特点:数据在内存中处理比磁盘(硬盘)要更快一些,有时候可能需要临时在内存中保存并处理数据,内存流效率会更高java.io提供了字节内存流和字符内存流:字节内存流:ByteArrayInputStream和ByteArrayOutputStream字符内存流:CharArrayReader和CharArrayWriterByteArrayInputStr...
2020-02-02 21:58:31
477
原创 IO系列之字节流和字符流
IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流进行输入、输出操作一般都会按照如下步骤进行:通过File类定义一个要操作文件的路径通过字节流或字符流的子类对象为父类对象实例化进行数据的读(输入)、写(输出)操作数据流属于资源操作,资源操作必须关闭java.io包定义了两类流:字节流(JDK 1.0):InputStrea...
2020-02-02 12:14:50
583
原创 IO系列之使用File类操作文件
1. File类介绍五个核心类:File、InputStream、OutputStream、Reader、Writer一个核心接口:Serializable在整个java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不涉及具体内容。文件本身是指文件的创建、删除等操作2. 通过构造方法设置文件路径public File(String pathname)pathna...
2020-02-01 22:49:03
289
原创 选择排序算法解析
选择排序是遍历列表,然后每次将最大或者最小的数保存到新的列表,这样就得到了排好序的列表。选择排序时间复杂度为O(n^2)实现选择排序的基本步骤如下:先从第一个元素开始,相邻的两个元素进行比较,最后得出第一次比较中最小的元素;记录好这个最小元素的位置,并把这个元素与第一个元素互换位置;接着再从第二个元素开始,相邻的两个元素再进行比较,得出第二次比较中最小的元素;记录好这个最小元素的位置,...
2020-02-01 10:26:32
230
原创 使用Java实现链表
链表(Linked List)介绍链表是有序的列表链表是以节点的方式存储的,是链式存储每个节点包含data域,next域:指向下一个节点链表的各个节点不一定是连续存储链表分带头节点的链表和没有头节点的链表。不带头节点的链表为单链表使用代码实现单向链表示例如下:package com.zjx.algorithm.linkedlist;/** * 单向链表的实现 */pub...
2020-01-30 16:29:35
269
原创 稀疏数组和队列
一、稀疏数组当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组(sparsearray)的处理方式:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列以及值记录在一个小规模的数组中,从而缩小程序的规模。二维数组转稀疏数组的思路遍历原始的二维数组,得到有效数据(不同的值的数据)的个数sum根据sum可以创建稀疏数组sparse...
2020-01-20 09:41:30
299
原创 算法概述
1. 什么是算法算法是模型分析的一组可行的、确定的和有穷的规则。一个典型的算法可以从其中抽象出5个特征:有穷性、确切性、输入、输出和可行性有穷性:算法的指令或者步骤的执行次数是有限的,执行的时间也是有限的。确切性算法的每一个指令或者步骤都必须有明确的定义和描述。输入一个算法应该有相应的输入条件,用来刻画运算对象的初始情况。输出一个算法应该有明确的结果输出可...
2020-01-20 09:40:03
1600
原创 java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)
一、简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法、通过身份证获取年龄、通过身份证获取性别、通过身份证获取户籍地址、通过身份证获取生日、将15位身份证转为18位身份证等。
2020-01-08 14:27:20
8533
原创 java数组详解
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。在声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字。例如:int[] a;这条语句只是声明了变量a,并没有将a初始化为一个真正的数组,使用new运算符创建数组。int[] a = new int[10];创建一个数字数组时,所有元素都初始化为0,boolean数组的元素初...
2019-12-25 14:11:40
359
原创 Java实体转换相关工具类
主要实现相同属性的实体对象之间复制、将一个集合的对象复制为另一个集合、将json转换为对象以及将map集合拷贝为对象等功能。
2019-12-19 10:43:32
853
原创 通过身份证获取年龄和性别
需要引入commons-lang包package com.zjx.util;import org.apache.commons.lang.StringUtils;import java.text.SimpleDateFormat;import java.util.Date;/** * @author zhaojiaxing * @version 1.0 * @descrip...
2019-12-19 10:39:39
460
原创 mysql系列(十三)SQL语句之联结表
1.联结sql最强大的功能之一就是可以在数据检索查询的执行中联结(join)表。联结是利用SELECT能执行的嘴重要的操作。1.1 关系表关系表的设计就是要保证把信息分成多个表,一类数据一个表。各表通过某些常用的值(即关系设计中的关系(relational))互相关联。 外键:外键为某个表中的一列,它包含另一个表的主键值,它定义了两个表之间的关系关系表的好处:...
2018-07-26 17:41:07
883
原创 mysql系列(十二)SQL语句之子查询
1.利用子查询进行过滤子查询:嵌套在其他查询中的查询SELECT column1_name FROM table1 WHERE column2_name IN ( SELECT column2_name FROM table2 WHERE column2_name >...
2018-07-24 10:25:29
553
原创 mysql系列(十一)分组数据
1. 什么是分组?分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。2. 创建分组分组是在SELECT语句的GROUP BY子句中建立的,用法如下:SELECT column1_name,column2_name FROM table GROUP BY column1_nameGROUP BY子句可以包含任意数目的列。如果在GROUP BY子句中列出的每个列...
2018-07-23 14:24:44
339
原创 mysql系列(十)汇总函数
一、聚集函数聚集函数:运行在行组上,计算和返回单个值的函数SQL聚集函数 函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和1.1 AVG()函数AVG():返回所有列、特定列或行的平均...
2018-07-23 14:07:01
327
1
原创 mysql系列(九)sql语句之使用数据处理函数
1.什么是函数函数一般是在数据上执行的,他给数据的处理和转换带来了方便 大多数SQL实现支持以下类型的函数 用于处理文本串的文本函数用于在数值数据上进行算术操作的数值函数用于处理日期和时间的日期和时间函数返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。2.使用函数2.1 文本处理函数常见的文本处理函数 函数 说明...
2018-07-23 11:52:59
404
原创 Spring系列(二)Spring bean的高级装配详解
1 环境与profile在开发软件的时候,有一个很大的挑战就是将应用程序从一个环境迁移到另一个环境。在开发阶段中,某些相关做法可能并不适合迁移到生产环境中,甚至迁移过去也无法正常工作。数据库配置就是比较常见的例子。Spring为环境相关的bean所提供的解决方案其实与构建时的方案没什么差别,不过Spring并不是在构建时确定该创建哪个bean,而是在运行时决定。这样的结果就是同一个部署单元...
2018-06-28 23:32:54
686
1
原创 mysql系列(八)sql语句之创建计算字段
前言有时候储存在数据库表中的数据不是应用程序所需的格式,例如想在一个字段中既显示公司名又显示显示公司地址,但这两个信息一般保存在不同的表列中,这时候就需要使用计算字段,直接从数据库中检索出转换、计算或者格式化的数据,而不是直接返回数据库中的数据然后由应用程序来处理。 计算字段并不存在数据库中,是在运行SELECT语句内创建的1.拼接(concatenate)将值连接在一起构成...
2018-06-26 21:49:41
2148
原创 mysql系列(七)SQL语句之使用正则表达式进行搜索
一、什么是正则表达式正则表达式是用正则表达式语言来建立 ,用来匹配文本的特殊的串(字符集合) 。二、使用mysql正则表达式mysql用WHERE子句对正则表达式提供了初步的支持,允许你用正则表达式过滤SELECT检索出来的数据,使用正则表达式需要用 REGEXP 关键字。2.1 基本字符匹配检索column1_name包含文本1000的所有行SELECT column1...
2018-06-23 16:12:01
4983
原创 Spring系列(一)Spring装配bean详解
装配(wiring): 创建应用对象之间协作关系的行为。依赖注入的本质是装配。1 Spring配置的可选方案Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。Spring提供了三种主要的装配机制: - 在XML中进行显示配置 - 在Java中进行显示配置 - 隐式的bean发现机制和自动装配这些装配机制可以同时使用,也可以单独使用2 ...
2018-06-17 21:32:54
716
原创 mysql系列(六)SQL语句之从数据库中查询数据
前言一、检索数据(基础查询)1.1 检索单个列1.2 检索多个列1.3 检索所用列1.4 检索不同的行(即返回没有重复的数据)1.5 限制结果1.6 使用完全限定的表名二、排序2.1 单个排序2.2 多个列排序2.3 指定排序方向三、过滤数据使用WHERE子句3.1 检查单个值3.2 不匹配检查3.3 范围值检查四、组合WHERE子...
2018-06-16 23:05:34
4687
深入浅出MyBatis技术原理与实战(高清带目录版)
2018-04-28
Spring+Cloud与Docker微服务架构实战(带目录高清版)
2018-04-28
Spring Cloud微服务实战(高清带目录书签)
2018-04-28
MongoDB权威指南 第三版(高清带目录书签)
2018-04-28
Spring Cloud微服务实战(高清版)
2018-04-27
Java核心技术 卷1 基础知识 原书第10版
2018-04-27
Java多线程编程核心技术_完整版
2018-04-27
561801+Redis实战
2018-04-27
swagger整合Spring Boot生成Restful api
2017-07-05
swagger整合Spring Boot生成Restful接口文档
2017-07-05
swagger整合SpringMvc生成Restful api
2017-07-05
spring技术内幕
2016-12-13
递归出现死循环导致内存溢出问题
2018-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人